next() 공개 메소드

[element:a] (0)[element:b] (1)[element:c] [element:b]->next() === [element:c]
public next ( ) : Node | null
리턴 Node | null
예제 #1
0
 /**
  * Compiles a conditional, either if, elseif, else if or else into PHTML.
  *
  * @param Node $node the conditional node to compile
  *
  * @return string The compiled PHTML
  */
 protected function compileConditional(Node $node)
 {
     $type = $node->conditionType;
     $subject = $node->subject;
     if ($subject === 'block') {
         $subject = '$__block';
     }
     if ($this->isVariable($subject)) {
         $subject = "isset({$subject}) ? {$subject} : false";
     }
     if ($type === 'unless') {
         $type = 'if';
         $subject = "!({$subject})";
     }
     $isPrevConditional = $node->prev() && $node->prev()->type === 'conditional' && $type !== 'if';
     $isNextConditional = $node->next() && $node->next()->type === 'conditional' && $node->next()->conditionType !== 'if' && $node->next()->conditionType !== 'unless';
     $prefix = $isPrevConditional ? '' : '<?php ';
     $suffix = $isNextConditional ? '' : '?>';
     $phtml = $type === 'else' ? $this->createCode(' else {', $prefix) : $this->createCode("{$type} ({$subject}) {", $prefix);
     $phtml .= $this->compileChildren($node->children);
     $phtml .= $this->newLine() . $this->indent() . $this->createCode("}", '<?php ', $suffix);
     return $phtml;
 }