本文整理匯總了PHP中Zephir\Variable::setClassTypes方法的典型用法代碼示例。如果您正苦於以下問題:PHP Variable::setClassTypes方法的具體用法?PHP Variable::setClassTypes怎麽用?PHP Variable::setClassTypes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Zephir\Variable
的用法示例。
在下文中一共展示了Variable::setClassTypes方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: assign
//.........這裏部分代碼省略.........
}
break;
case 'bool':
switch ($statement['operator']) {
case 'assign':
$symbolVariable->initVariant($compilationContext);
$symbolVariable->setDynamicTypes('bool');
if ($symbolVariable->isLocalOnly()) {
$codePrinter->output('ZVAL_BOOL(&' . $variable . ', ' . $itemVariable->getName() . ');');
} else {
$codePrinter->output('ZVAL_BOOL(' . $variable . ', ' . $itemVariable->getName() . ');');
}
break;
default:
throw new CompilerException("Operator '" . $statement['operator'] . "' is not supported for variable type: " . $itemVariable->getType(), $statement);
}
break;
case 'array':
switch ($statement['operator']) {
case 'assign':
if ($variable != $resolvedExpr->getCode()) {
$symbolVariable->setMustInitNull(true);
$compilationContext->symbolTable->mustGrownStack(true);
/* Inherit the dynamic type data from the assigned value */
$symbolVariable->setDynamicTypes('array');
$codePrinter->output('ZEPHIR_CPY_WRT(' . $variable . ', ' . $resolvedExpr->getCode() . ');');
}
break;
default:
throw new CompilerException("Operator '" . $statement['operator'] . "' is not supported for variable type: " . $resolvedExpr->getType(), $resolvedExpr->getOriginal());
}
break;
case 'variable':
switch ($statement['operator']) {
case 'assign':
if ($itemVariable->getName() != $variable) {
$symbolVariable->setMustInitNull(true);
$compilationContext->symbolTable->mustGrownStack(true);
/* Inherit the dynamic type data from the assigned value */
$symbolVariable->setDynamicTypes($itemVariable->getDynamicTypes());
$symbolVariable->setClassTypes($itemVariable->getClassTypes());
$codePrinter->output('ZEPHIR_CPY_WRT(' . $variable . ', ' . $itemVariable->getName() . ');');
if ($itemVariable->isTemporal()) {
$itemVariable->setIdle(true);
}
}
break;
case 'concat-assign':
$compilationContext->headersManager->add('kernel/operators');
$codePrinter->output('zephir_concat_self(&' . $variable . ', ' . $itemVariable->getName() . ' TSRMLS_CC);');
break;
case 'add-assign':
$compilationContext->symbolTable->mustGrownStack(true);
$compilationContext->headersManager->add('kernel/operators');
$codePrinter->output('ZEPHIR_ADD_ASSIGN(' . $variable . ', ' . $itemVariable->getName() . ');');
break;
case 'sub-assign':
$compilationContext->symbolTable->mustGrownStack(true);
$compilationContext->headersManager->add('kernel/operators');
$codePrinter->output('ZEPHIR_SUB_ASSIGN(' . $variable . ', ' . $itemVariable->getName() . ');');
break;
default:
throw new CompilerException("Operator '" . $statement['operator'] . "' is not supported for variable type: " . $itemVariable->getType(), $statement);
}
break;
case 'string':
switch ($statement['operator']) {
case 'assign':
if ($itemVariable->getName() != $variable) {
$symbolVariable->setMustInitNull(true);
$compilationContext->symbolTable->mustGrownStack(true);
/* Inherit the dynamic type data from the assigned value */
$symbolVariable->setDynamicTypes($itemVariable->getDynamicTypes());
$symbolVariable->setClassTypes($itemVariable->getClassTypes());
$codePrinter->output('ZEPHIR_CPY_WRT(' . $variable . ', ' . $itemVariable->getName() . ');');
if ($itemVariable->isTemporal()) {
$itemVariable->setIdle(true);
}
}
break;
case 'concat-assign':
$compilationContext->headersManager->add('kernel/operators');
$codePrinter->output('zephir_concat_self(&' . $variable . ', ' . $itemVariable->getName() . ' TSRMLS_CC);');
break;
default:
throw new CompilerException("Operator '" . $statement['operator'] . "' is not supported for variable type: " . $itemVariable->getType(), $statement);
}
break;
default:
throw new CompilerException("Unknown type: " . $itemVariable->getType(), $resolvedExpr->getOriginal());
}
break;
default:
throw new CompilerException("Unknown type: " . $resolvedExpr->getType(), $resolvedExpr->getOriginal());
}
break;
default:
throw new CompilerException("Unknown type: " . $type, $statement);
}
}