isDoublePointer() публичный Метод

Returns the variable
public isDoublePointer ( )
Пример #1
0
 public function ifVariableValueUndefined(Variable $var, CompilationContext $context, $useBody = false, $useCodePrinter = true)
 {
     if ($var->isDoublePointer()) {
         return parent::ifVariableValueUndefined($var, $context, $useBody, $useCodePrinter);
     }
     $body = 'Z_TYPE_P(' . $this->getVariableCode($var) . ') == IS_UNDEF';
     $output = 'if (' . $body . ') {';
     if ($useCodePrinter) {
         $context->codePrinter->output($output);
     }
     return $useBody ? $body : $output;
 }
Пример #2
0
 public function generateInitCode(&$groupVariables, $type, $pointer, Variable $variable)
 {
     $isComplex = $type == 'variable' || $type == 'string' || $type == 'array' || $type == 'resource' || $type == 'callable' || $type == 'object';
     if ($isComplex && $variable->mustInitNull()) {
         if ($variable->isLocalOnly()) {
             $groupVariables[] = $variable->getName() . ' = zval_used_for_init';
         } else {
             if ($variable->isDoublePointer()) {
                 $groupVariables[] = $pointer . $pointer . $variable->getName() . ' = NULL';
             } else {
                 $groupVariables[] = $pointer . $variable->getName() . ' = NULL';
             }
         }
         return;
     }
     if ($variable->isLocalOnly()) {
         $groupVariables[] = $variable->getName();
         return;
     }
     if ($variable->isDoublePointer()) {
         if ($variable->mustInitNull()) {
             $groupVariables[] = $pointer . $pointer . $variable->getName() . ' = NULL';
         } else {
             $groupVariables[] = $pointer . $pointer . $variable->getName();
         }
         return;
     }
     $defaultValue = $variable->getDefaultInitValue();
     if ($defaultValue !== null) {
         switch ($type) {
             case 'variable':
             case 'string':
             case 'array':
             case 'resource':
             case 'callable':
             case 'object':
                 $groupVariables[] = $pointer . $variable->getName();
                 break;
             case 'char':
                 if (strlen($defaultValue) > 4) {
                     if (strlen($defaultValue) > 10) {
                         throw new CompilerException("Invalid char literal: '" . substr($defaultValue, 0, 10) . "...'", $variable->getOriginal());
                     } else {
                         throw new CompilerException("Invalid char literal: '" . $defaultValue . "'", $variable->getOriginal());
                     }
                 }
                 /* no break */
             /* no break */
             default:
                 $groupVariables[] = $pointer . $variable->getName() . ' = ' . $defaultValue;
                 break;
         }
         return;
     }
     if ($variable->mustInitNull() && $pointer) {
         $groupVariables[] = $pointer . $variable->getName() . ' = NULL';
         return;
     }
     $groupVariables[] = $pointer . $variable->getName();
 }