Вход Регистрация
Файл: vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php
Строк: 69
<?php declare(strict_types=1);

namespace 
PhpParserNodeExpr;

use 
PhpParserNode;
use 
PhpParserNodeExpr;
use 
PhpParserNodeFunctionLike;

class 
Closure extends Expr implements FunctionLike
{
    
/** @var bool Whether the closure is static */
    
public $static;
    
/** @var bool Whether to return by reference */
    
public $byRef;
    
/** @var NodeParam[] Parameters */
    
public $params;
    
/** @var ClosureUse[] use()s */
    
public $uses;
    
/** @var null|NodeIdentifier|NodeName|NodeComplexType Return type */
    
public $returnType;
    
/** @var NodeStmt[] Statements */
    
public $stmts;
    
/** @var NodeAttributeGroup[] PHP attribute groups */
    
public $attrGroups;

    
/**
     * Constructs a lambda function node.
     *
     * @param array $subNodes   Array of the following optional subnodes:
     *                          'static'     => false  : Whether the closure is static
     *                          'byRef'      => false  : Whether to return by reference
     *                          'params'     => array(): Parameters
     *                          'uses'       => array(): use()s
     *                          'returnType' => null   : Return type
     *                          'stmts'      => array(): Statements
     *                          'attrGroups' => array(): PHP attributes groups
     * @param array $attributes Additional attributes
     */
    
public function __construct(array $subNodes = [], array $attributes = []) {
        
$this->attributes $attributes;
        
$this->static $subNodes['static'] ?? false;
        
$this->byRef $subNodes['byRef'] ?? false;
        
$this->params $subNodes['params'] ?? [];
        
$this->uses $subNodes['uses'] ?? [];
        
$returnType $subNodes['returnType'] ?? null;
        
$this->returnType is_string($returnType) ? new NodeIdentifier($returnType) : $returnType;
        
$this->stmts $subNodes['stmts'] ?? [];
        
$this->attrGroups $subNodes['attrGroups'] ?? [];
    }

    public function 
getSubNodeNames() : array {
        return [
'attrGroups''static''byRef''params''uses''returnType''stmts'];
    }

    public function 
returnsByRef() : bool {
        return 
$this->byRef;
    }

    public function 
getParams() : array {
        return 
$this->params;
    }

    public function 
getReturnType() {
        return 
$this->returnType;
    }

    
/** @return NodeStmt[] */
    
public function getStmts() : array {
        return 
$this->stmts;
    }

    public function 
getAttrGroups() : array {
        return 
$this->attrGroups;
    }

    public function 
getType() : string {
        return 
'Expr_Closure';
    }
}
Онлайн: 1
Реклама