cast() final public static method

final public static cast ( string $castType, Expression $castValue ) : CastExpression
$castType string
$castValue Expression
return CastExpression
コード例 #1
0
ファイル: ComplexParserTest.php プロジェクト: timetoogo/pinq
 /**
  * @dataProvider parsers
  */
 public function testNestedCastOperators()
 {
     $function = function () {
         (double) (object) (bool) (int) (string) $i;
     };
     $this->assertParsedAs($function, [O\Expression::cast(O\Operators\Cast::DOUBLE, O\Expression::cast(O\Operators\Cast::OBJECT, O\Expression::cast(O\Operators\Cast::BOOLEAN, O\Expression::cast(O\Operators\Cast::INTEGER, O\Expression::cast(O\Operators\Cast::STRING, self::variable('i'))))))]);
 }
コード例 #2
0
ファイル: AST.php プロジェクト: timetoogo/pinq
 private function parseOperatorNode(Node\Expr $node)
 {
     $nodeType = str_replace('Expr_', '', $node->getType());
     switch (true) {
         case isset(self::$assignOperatorsMap[$nodeType]):
             return Expression::assign($this->parseNode($node->var), self::$assignOperatorsMap[$nodeType], $this->parseNode($node->expr));
         case $node instanceof Node\Expr\Instanceof_:
             return Expression::binaryOperation($this->parseNode($node->expr), Operators\Binary::IS_INSTANCE_OF, $this->parseNameNode($node->class));
         case isset(self::$binaryOperatorsMap[$nodeType]):
             return Expression::binaryOperation($this->parseNode($node->left), self::$binaryOperatorsMap[$nodeType], $this->parseNode($node->right));
         case isset(self::$unaryOperatorsMap[$nodeType]):
             return Expression::unaryOperation(self::$unaryOperatorsMap[$nodeType], $this->parseNode(isset($node->expr) ? $node->expr : $node->var));
         case isset(self::$castOperatorMap[$nodeType]):
             return Expression::cast(self::$castOperatorMap[$nodeType], $this->parseNode($node->expr));
         default:
             return null;
     }
 }
コード例 #3
0
ファイル: ExpressionTest.php プロジェクト: timetoogo/pinq
 public function expressions()
 {
     return [[O\Expression::arrayExpression([])], [O\Expression::arrayItem(null, O\Expression::value(0), false)], [O\Expression::assign(O\Expression::value(0), O\Operators\Assignment::EQUAL, O\Expression::value(0))], [O\Expression::binaryOperation(O\Expression::value(0), O\Operators\Binary::ADDITION, O\Expression::value(0))], [O\Expression::unaryOperation(O\Operators\Unary::PLUS, O\Expression::value(0))], [O\Expression::cast(O\Operators\Cast::STRING, O\Expression::value(0))], [O\Expression::closure(false, false, [], [], [])], [O\Expression::closureUsedVariable('var')], [O\Expression::emptyExpression(O\Expression::value(0))], [O\Expression::field(O\Expression::value(0), O\Expression::value(0))], [O\Expression::functionCall(O\Expression::value(0))], [O\Expression::index(O\Expression::value(0), O\Expression::value(0))], [O\Expression::invocation(O\Expression::value(0))], [O\Expression::issetExpression([O\Expression::value(0)])], [O\Expression::unsetExpression([O\Expression::value(0)])], [O\Expression::methodCall(O\Expression::value(0), O\Expression::value(0))], [O\Expression::newExpression(O\Expression::value(0))], [O\Expression::parameter('')], [O\Expression::argument(O\Expression::value(0))], [O\Expression::returnExpression()], [O\Expression::staticMethodCall(O\Expression::value(0), O\Expression::value(0))], [O\Expression::staticField(O\Expression::value(0), O\Expression::value(0))], [O\Expression::ternary(O\Expression::value(0), null, O\Expression::value(0))], [O\Expression::throwExpression(O\Expression::value(0))], [O\Expression::value(0)], [O\Expression::variable(O\Expression::value(0))], [O\Expression::constant('foo')], [O\Expression::classConstant(O\Expression::value(0), 'foo')]];
 }
コード例 #4
0
ファイル: SimpleParserTest.php プロジェクト: timetoogo/pinq
 /**
  * @dataProvider parsers
  */
 private function assertCast(callable $function, $typeOperator, $castName)
 {
     $this->assertParsedAs($function, [O\Expression::cast($typeOperator, O\Expression::variable(O\Expression::value($castName)))]);
 }