當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Parser::FunctionDeclaration方法代碼示例

本文整理匯總了PHP中Doctrine\ORM\Query\Parser::FunctionDeclaration方法的典型用法代碼示例。如果您正苦於以下問題:PHP Parser::FunctionDeclaration方法的具體用法?PHP Parser::FunctionDeclaration怎麽用?PHP Parser::FunctionDeclaration使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine\ORM\Query\Parser的用法示例。


在下文中一共展示了Parser::FunctionDeclaration方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: parse

 public function parse(\Doctrine\ORM\Query\Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     // Add the concat separator to the values array.
     $this->values[] = $parser->ArithmeticExpression();
     // Add the rest of the strings to the values array. CONCAT_WS must
     // be used with at least 2 strings not including the separator.
     $lexer = $parser->getLexer();
     while (count($this->values) < 3 || $lexer->lookahead['type'] == Lexer::T_COMMA) {
         $parser->match(Lexer::T_COMMA);
         $peek = $lexer->glimpse();
         $this->values[] = $peek['value'] == '(' ? $parser->FunctionDeclaration() : $parser->ArithmeticExpression();
     }
     while ($lexer->lookahead['type'] == Lexer::T_IDENTIFIER) {
         switch (strtolower($lexer->lookahead['value'])) {
             case 'notempty':
                 $parser->match(Lexer::T_IDENTIFIER);
                 $this->notEmpty = true;
                 break;
             default:
                 // Identifier not recognized (causes exception).
                 $parser->match(Lexer::T_CLOSE_PARENTHESIS);
                 break;
         }
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:digvijaymohite,項目名稱:e-tender,代碼行數:28,代碼來源:ConcatWs.php

示例2: parse

 /**
  * Parse function
  * 
  * @param \Doctrine\ORM\Query\Parser $parser Parser
  *  
  * @return void
  */
 public function parse(\Doctrine\ORM\Query\Parser $parser)
 {
     $parser->match(\Doctrine\ORM\Query\Lexer::T_IDENTIFIER);
     $parser->match(\Doctrine\ORM\Query\Lexer::T_OPEN_PARENTHESIS);
     try {
         $this->ifThen = $parser->FunctionDeclaration();
     } catch (\Doctrine\ORM\Query\QueryException $e) {
         $this->ifThen = $parser->ScalarExpression();
     }
     $parser->match(\Doctrine\ORM\Query\Lexer::T_COMMA);
     try {
         $this->ifElse = $parser->FunctionDeclaration();
     } catch (\Doctrine\ORM\Query\QueryException $e) {
         $this->ifElse = $parser->ScalarExpression();
     }
     $parser->match(\Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:kirkbauer2,項目名稱:kirkxc,代碼行數:24,代碼來源:IfnullFunction.php

示例3: parse

 public function parse(Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $this->values[] = $parser->ArithmeticExpression();
     $lexer = $parser->getLexer();
     while (count($this->values) < 3 || $lexer->lookahead['type'] == Lexer::T_COMMA) {
         $parser->match(Lexer::T_COMMA);
         $peek = $lexer->glimpse();
         $this->values[] = $peek['value'] == '(' ? $parser->FunctionDeclaration() : $parser->ArithmeticExpression();
     }
     while ($lexer->lookahead['type'] == Lexer::T_IDENTIFIER) {
         switch (strtolower($lexer->lookahead['value'])) {
             case 'notempty':
                 $parser->match(Lexer::T_IDENTIFIER);
                 $this->notEmpty = true;
                 break;
             default:
                 $parser->match(Lexer::T_CLOSE_PARENTHESIS);
                 break;
         }
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:v3labs,項目名稱:doctrine-extensions,代碼行數:24,代碼來源:ConcatWs.php


注:本文中的Doctrine\ORM\Query\Parser::FunctionDeclaration方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。