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

namespace 
PhpParserNodeStmt;

use 
PhpParserNode;
use 
PhpParserNodeFunctionLike;

class 
Function_ extends NodeStmt implements FunctionLike
{
    
/** @var bool Whether function returns by reference */
    
public $byRef;
    
/** @var NodeIdentifier Name */
    
public $name;
    
/** @var NodeParam[] Parameters */
    
public $params;
    
/** @var null|NodeIdentifier|NodeName|NodeComplexType Return type */
    
public $returnType;
    
/** @var NodeStmt[] Statements */
    
public $stmts;
    
/** @var NodeAttributeGroup[] PHP attribute groups */
    
public $attrGroups;

    
/** @var NodeName|null Namespaced name (if using NameResolver) */
    
public $namespacedName;

    
/**
     * Constructs a function node.
     *
     * @param string|NodeIdentifier $name Name
     * @param array  $subNodes   Array of the following optional subnodes:
     *                           'byRef'      => false  : Whether to return by reference
     *                           'params'     => array(): Parameters
     *                           'returnType' => null   : Return type
     *                           'stmts'      => array(): Statements
     *                           'attrGroups' => array(): PHP attribute groups
     * @param array  $attributes Additional attributes
     */
    
public function __construct($name, array $subNodes = [], array $attributes = []) {
        
$this->attributes $attributes;
        
$this->byRef $subNodes['byRef'] ?? false;
        
$this->name is_string($name) ? new NodeIdentifier($name) : $name;
        
$this->params $subNodes['params'] ?? [];
        
$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''byRef''name''params''returnType''stmts'];
    }

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

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

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

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

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

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