当前位置: 首页>>代码示例>>PHP>>正文


PHP Expression::variable方法代码示例

本文整理汇总了PHP中Expression::variable方法的典型用法代码示例。如果您正苦于以下问题:PHP Expression::variable方法的具体用法?PHP Expression::variable怎么用?PHP Expression::variable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Expression的用法示例。


在下文中一共展示了Expression::variable方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: fromExpressions

    /**
     * Creates a new compiled evaluator from the supplied expressions.
     *
     * @param Expression[]       $expressions
     * @param IEvaluationContext $context
     *
     * @return CompiledEvaluator
     */
    public static function fromExpressions(array $expressions, IEvaluationContext $context = null)
    {
        $evaluator = new self($context);
        $namespace = $evaluator->context->getNamespace();
        $contextParameterName = self::CONTEXT_PARAMETER_NAME;
        $variableTable = $evaluator->context->getVariableTable();
        //Replace any non value types with references in the variable table.
        $expressions = (new DynamicExpressionWalker([ValueExpression::getType() => function (ValueExpression $expression) use($evaluator, $variableTable, &$name) {
            $value = $expression->getValue();
            if (!ValueExpression::isValueType($value)) {
                $name = $name !== null ? $name : 0;
                do {
                    $name++;
                } while (isset($variableTable['o' . $name]));
                $name = 'o' . $name;
                $evaluator->extraVariables[$name] = $value;
                return Expression::variable(Expression::value($name));
            }
            return $expression;
        }]))->walkAll($expressions);
        $bodyCode = '';
        foreach ($evaluator->extraVariables + $variableTable as $variable => $value) {
            $variableName = Expression::value($variable);
            $variableCode = Expression::variable($variableName)->compile();
            $bodyCode .= "{$variableCode} =& \${$contextParameterName}" . '[' . $variableName->compile() . '];';
        }
        $bodyCode .= "unset(\${$contextParameterName});";
        $bodyCode .= implode(';', Expression::compileAll($expressions)) . ';';
        $evaluator->code = <<<PHP
namespace {$namespace} {
    return function (\${$contextParameterName}) {
        {$bodyCode}
    };
}
PHP;
        $evaluator->initializeEvaluator();
        return $evaluator;
    }
开发者ID:timetoogo,项目名称:pinq,代码行数:46,代码来源:CompiledEvaluator.php

示例2: asVariable

 /**
  * @return VariableExpression
  */
 public function asVariable()
 {
     return Expression::variable(Expression::value($this->name));
 }
开发者ID:timetoogo,项目名称:pinq,代码行数:7,代码来源:NamedParameterExpression.php


注:本文中的Expression::variable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。