arrayItem() final public static method

final public static arrayItem ( Expression $key = null, Expression $value, boolean $isReference = false ) : ArrayItemExpression
$key Expression
$value Expression
$isReference boolean
return ArrayItemExpression
コード例 #1
0
ファイル: AST.php プロジェクト: timetoogo/pinq
 private function parseArrayNode(Node\Expr\Array_ $node)
 {
     $itemExpressions = [];
     foreach ($node->items as $item) {
         //Keys must match
         $itemExpressions[] = Expression::arrayItem($item->key === null ? null : $this->parseNode($item->key), $this->parseNode($item->value), $item->byRef);
     }
     return Expression::arrayExpression($itemExpressions);
 }
コード例 #2
0
ファイル: SimpleParserTest.php プロジェクト: timetoogo/pinq
 /**
  * @dataProvider parsers
  */
 public function testReturnValues()
 {
     $this->assertReturn(function () {
         return 1;
     }, O\Expression::value(1));
     $this->assertReturn(function () {
         return 2;
     }, O\Expression::value(2));
     $this->assertReturn(function () {
         return '1';
     }, O\Expression::value('1'));
     $this->assertReturn(function () {
         return 1.01;
     }, O\Expression::value(1.01));
     $this->assertReturn(function () {
         return true;
     }, O\Expression::constant('true'));
     $this->assertReturn(function () {
         return null;
     }, O\Expression::constant('null'));
     $this->assertReturn(function () {
         return [1, 5, 57, 4 => 3, 'tset' => 'ftest', true => &$foo];
     }, O\Expression::arrayExpression([O\Expression::arrayItem(null, O\Expression::value(1), false), O\Expression::arrayItem(null, O\Expression::value(5), false), O\Expression::arrayItem(null, O\Expression::value(57), false), O\Expression::arrayItem(O\Expression::value(4), O\Expression::value(3), false), O\Expression::arrayItem(O\Expression::value('tset'), O\Expression::value('ftest'), false), O\Expression::arrayItem(O\Expression::constant('true'), O\Expression::variable(O\Expression::value('foo')), true)]));
     $this->assertReturn(function () {
         return new \stdClass();
     }, O\Expression::newExpression(O\Expression::value('\\stdClass')));
 }
コード例 #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
ファイル: QueryParsingTest.php プロジェクト: timetoogo/pinq
 protected function exampleFromDocsQuery()
 {
     $rowExpression = O\Expression::variable(O\Expression::value('row'));
     return $this->scopeRequest([new Q\Segments\Filter(new Q\Functions\ElementProjection($this->parameter(), self::SCOPE_TYPE, self::SCOPE_NAMESPACE, [$this->parameter() => 'this'], [O\Expression::parameter('row')], [O\Expression::returnExpression(O\Expression::binaryOperation(O\Expression::index($rowExpression, O\Expression::value('age')), O\Operators\Binary::LESS_THAN_OR_EQUAL_TO, O\Expression::value(50)))])), new Q\Segments\OrderBy([new Q\Segments\Ordering($this->indexProjection('firstName'), $this->parameter()), new Q\Segments\Ordering($this->indexProjection('lastName'), $this->parameter())]), new Q\Segments\Range($this->parameter(), $this->parameter()), new Q\Segments\IndexBy($this->indexProjection('phoneNumber')), new Q\Segments\Select(new Q\Functions\ElementProjection($this->parameter(), self::SCOPE_TYPE, self::SCOPE_NAMESPACE, [$this->parameter() => 'this'], [O\Expression::parameter('row')], [O\Expression::returnExpression(O\Expression::arrayExpression([O\Expression::arrayItem(O\Expression::value('fullName'), O\Expression::binaryOperation(O\Expression::binaryOperation(O\Expression::index($rowExpression, O\Expression::value('firstName')), O\Operators\Binary::CONCATENATION, O\Expression::value(' ')), O\Operators\Binary::CONCATENATION, O\Expression::index($rowExpression, O\Expression::value('lastName')))), O\Expression::arrayItem(O\Expression::value('address'), O\Expression::index($rowExpression, O\Expression::value('address'))), O\Expression::arrayItem(O\Expression::value('dateOfBirth'), O\Expression::index($rowExpression, O\Expression::value('dateOfBirth')))]))]))]);
 }