{"id":28387618,"url":"https://github.com/rectorphp/php-parser-nodes-docs","last_synced_at":"2025-08-19T08:38:11.104Z","repository":{"id":66226650,"uuid":"336902963","full_name":"rectorphp/php-parser-nodes-docs","owner":"rectorphp","description":"Visual documentation of PHP Parser nodes, to help you learn AST, how to create nodes and analyse them","archived":false,"fork":false,"pushed_at":"2023-10-28T13:15:49.000Z","size":56,"stargazers_count":37,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-26T20:41:11.584Z","etag":null,"topics":["php","php-parser","phpstan","rector"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rectorphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-07T22:22:26.000Z","updated_at":"2025-04-12T19:11:03.000Z","dependencies_parsed_at":"2023-05-01T20:17:45.941Z","dependency_job_id":"327fc20c-c2ad-48e1-92a9-0b19590efb87","html_url":"https://github.com/rectorphp/php-parser-nodes-docs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rectorphp/php-parser-nodes-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rectorphp%2Fphp-parser-nodes-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rectorphp%2Fphp-parser-nodes-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rectorphp%2Fphp-parser-nodes-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rectorphp%2Fphp-parser-nodes-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rectorphp","download_url":"https://codeload.github.com/rectorphp/php-parser-nodes-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rectorphp%2Fphp-parser-nodes-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271123117,"owners_count":24703166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","php-parser","phpstan","rector"],"created_at":"2025-05-30T18:38:10.375Z","updated_at":"2025-08-19T08:38:11.078Z","avatar_url":"https://github.com/rectorphp.png","language":"PHP","readme":"# Node Overview\n\nHere you can find overview of commonly used nodes and how to build PHP code from them. For all nodes, [check php-parser code](https://github.com/nikic/PHP-Parser/tree/master/lib/PhpParser/Node).\n\n## `PhpParser\\Node\\Const_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Const_;\nuse PhpParser\\Node\\Scalar\\String_;\n\nreturn new Const_('CONSTANT_NAME', new String_('default'));\n```\n\n↓\n\n```php\nCONSTANT_NAME = 'default'\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Identifier Name */`\n * `$value` - `/** @var Expr Value */`\n * `$namespacedName` - `/** @var Name|null Namespaced name (if using NameResolver) */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ArrayDimFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ArrayDimFetch;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$variable = new Variable('variableName');\n$dimension = new LNumber(0);\n\nreturn new ArrayDimFetch($variable, $dimension);\n```\n\n↓\n\n```php\n$variableName[0]\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable */`\n * `$dim` - `/** @var null|Expr Array index / dim */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ArrayItem`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ArrayItem;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$value = new Variable('Tom');\n$key = new String_('name');\n\nreturn new ArrayItem($value, $key);\n```\n\n↓\n\n```php\n'name' =\u003e $Tom\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$key` - `/** @var null|Expr Key */`\n * `$value` - `/** @var Expr Value */`\n * `$byRef` - `/** @var bool Whether to assign by reference */`\n * `$unpack` - `/** @var bool Whether to unpack the argument */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Array_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Array_;\nuse PhpParser\\Node\\Expr\\ArrayItem;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$value = new Variable('Tom');\n$key = new String_('name');\n\n$arrayItem = new ArrayItem($value, $key);\n\nreturn new Array_([$arrayItem]);\n```\n\n↓\n\n```php\narray('name' =\u003e $Tom)\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$items` - `/** @var (ArrayItem|null)[] Items */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ArrowFunction`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ArrowFunction;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$subNodes['expr'] = new LNumber(1);\n\nreturn new ArrowFunction($subNodes);\n```\n\n↓\n\n```php\nfn() =\u003e 1\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$static` - `/** @var bool */`\n * `$byRef` - `/** @var bool */`\n * `$params` - `/** @var Node\\Param[] */`\n * `$returnType` - `/** @var null|Node\\Identifier|Node\\Name|Node\\ComplexType */`\n * `$expr` - `/** @var Expr */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Assign`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Assign;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$variable = new Variable('variableName');\n$value = new String_('some value');\n\nreturn new Assign($variable, $value);\n```\n\n↓\n\n```php\n$variableName = 'some value'\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Assign;\nuse PhpParser\\Node\\Expr\\PropertyFetch;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$propertyFetch = new PropertyFetch(new Variable('someObject'), 'someProperty');\n$value = new String_('some value');\n\nreturn new Assign($propertyFetch, $value);\n```\n\n↓\n\n```php\n$someObject-\u003esomeProperty = 'some value'\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable */`\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\AssignOp\\Coalesce`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\AssignOp\\Coalesce;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Coalesce($left, $right);\n```\n\n↓\n\n```php\n5 ??= 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable */`\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\AssignOp\\Concat`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\AssignOp\\Concat;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Concat($left, $right);\n```\n\n↓\n\n```php\n5 .= 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable */`\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new BooleanAnd($left, $right);\n```\n\n↓\n\n```php\n5 \u0026\u0026 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Coalesce`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Coalesce;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Coalesce($left, $right);\n```\n\n↓\n\n```php\n5 ?? 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Concat`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Concat;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Concat($left, $right);\n```\n\n↓\n\n```php\n5 . 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Equal`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Equal;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Equal($left, $right);\n```\n\n↓\n\n```php\n5 == 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Identical`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Identical;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Identical($left, $right);\n```\n\n↓\n\n```php\n5 === 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Minus`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Minus;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Minus($left, $right);\n```\n\n↓\n\n```php\n5 - 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\NotEqual`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\NotEqual;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new NotEqual($left, $right);\n```\n\n↓\n\n```php\n5 != 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new NotIdentical($left, $right);\n```\n\n↓\n\n```php\n5 !== 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BinaryOp\\Spaceship`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BinaryOp\\Spaceship;\nuse PhpParser\\Node\\Scalar\\LNumber;\n\n$left = new LNumber(5);\n$right = new LNumber(10);\n\nreturn new Spaceship($left, $right);\n```\n\n↓\n\n```php\n5 \u003c=\u003e 10\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$left` - `/** @var Expr The left hand side expression */`\n * `$right` - `/** @var Expr The right hand side expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\BooleanNot`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\BooleanNot;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('isEligible');\n\nreturn new BooleanNot($variable);\n```\n\n↓\n\n```php\n!$isEligible\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Cast\\Array_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Cast\\Array_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$expr = new Variable('variableName');\n\nreturn new Array_($expr);\n```\n\n↓\n\n```php\n(array) $variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Cast\\Bool_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Cast\\Bool_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$expr = new Variable('variableName');\n\nreturn new Bool_($expr);\n```\n\n↓\n\n```php\n(bool) $variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Cast\\Int_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Cast\\Int_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$expr = new Variable('variableName');\n\nreturn new Int_($expr);\n```\n\n↓\n\n```php\n(int) $variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Cast\\String_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Cast\\String_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$expr = new Variable('variableName');\n\nreturn new String_($expr);\n```\n\n↓\n\n```php\n(string) $variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ClassConstFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ClassConstFetch;\nuse PhpParser\\Node\\Name\\FullyQualified;\n\n$class = new FullyQualified('SomeClassName');\n\nreturn new ClassConstFetch($class, 'SOME_CONSTANT');\n```\n\n↓\n\n```php\n\\SomeClassName::SOME_CONSTANT\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$class` - `/** @var Name|Expr Class name */`\n * `$name` - `/** @var Identifier|Error Constant name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ClosureUse`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ClosureUse;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new ClosureUse($variable);\n```\n\n↓\n\n```php\n$variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr\\Variable Variable to use */`\n * `$byRef` - `/** @var bool Whether to use by reference */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\ConstFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ConstFetch;\nuse PhpParser\\Node\\Name;\n\n$name = new Name('true');\n\nreturn new ConstFetch($name);\n```\n\n↓\n\n```php\ntrue\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Name Constant name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Empty_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Empty_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new Empty_($variable);\n```\n\n↓\n\n```php\nempty($variableName)\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Eval_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Eval_;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$string = new String_('Some php code');\n\nreturn new Eval_(new String_('Some php code'));\n```\n\n↓\n\n```php\neval('Some php code')\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\FuncCall`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Arg;\nuse PhpParser\\Node\\Expr\\FuncCall;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Name;\n\n$args = [new Arg(new Variable('someVariable'))];\n\nreturn new FuncCall(new Name('func_call'), $args);\n```\n\n↓\n\n```php\nfunc_call($someVariable)\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Node\\Name|Expr Function name */`\n * `$args` - `/** @var array\u003cNode\\Arg|Node\\VariadicPlaceholder\u003e Arguments */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Include_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Include_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new Include_($variable, Include_::TYPE_INCLUDE);\n```\n\n↓\n\n```php\ninclude $variableName\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Include_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new Include_($variable, Include_::TYPE_REQUIRE_ONCE);\n```\n\n↓\n\n```php\nrequire_once $variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n * `$type` - `/** @var int Type of include */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Instanceof_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Instanceof_;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Name\\FullyQualified;\n\n$variable = new Variable('variableName');\n$class = new FullyQualified('SomeClassName');\n\nreturn new Instanceof_($variable, $class);\n```\n\n↓\n\n```php\n$variableName instanceof \\SomeClassName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Expr Expression */`\n * `$class` - `/** @var Name|Expr Class name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Isset_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Isset_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new Isset_([$variable]);\n```\n\n↓\n\n```php\nisset($variableName)\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$vars` - `/** @var Expr[] Variables */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\List_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ArrayItem;\nuse PhpParser\\Node\\Expr\\List_;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n$anotherVariable = new Variable('anotherVariableName');\n\n$arrayItems = [new ArrayItem($variable), new ArrayItem($anotherVariable)];\n\nreturn new List_($arrayItems);\n```\n\n↓\n\n```php\nlist($variableName, $anotherVariableName)\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$items` - `/** @var (ArrayItem|null)[] List of items to assign to */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Match_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Match_;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\MatchArm;\nuse PhpParser\\Node\\Scalar\\LNumber;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$variable = new Variable('variableName');\n\n$body = new String_('yes');\n$cond = new LNumber(1);\n$matchArm = new MatchArm([$cond], $body);\n\nreturn new Match_($variable, [$matchArm]);\n```\n\n↓\n\n```php\nmatch ($variableName) {\n    1 =\u003e 'yes',\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Node\\Expr */`\n * `$arms` - `/** @var MatchArm[] */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\MethodCall`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\MethodCall;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('someObject');\n\nreturn new MethodCall($variable, 'methodName');\n```\n\n↓\n\n```php\n$someObject-\u003emethodName()\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Arg;\nuse PhpParser\\Node\\Expr\\MethodCall;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$variable = new Variable('someObject');\n\n$args = [];\n$args[] = new Arg(new String_('yes'));\n\n$methodCall = new MethodCall($variable, 'methodName', $args);\n\n$nestedMethodCall = new MethodCall($methodCall, 'nextMethodName');\n\nreturn $nestedMethodCall;\n```\n\n↓\n\n```php\n$someObject-\u003emethodName('yes')-\u003enextMethodName()\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\MethodCall;\nuse PhpParser\\Node\\Expr\\PropertyFetch;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$thisVariable = new Variable('this');\n$propertyFetch = new PropertyFetch($thisVariable, 'someProperty');\n\nreturn new MethodCall($propertyFetch, 'methodName');\n```\n\n↓\n\n```php\n$this-\u003esomeProperty-\u003emethodName()\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Arg;\nuse PhpParser\\Node\\Expr\\MethodCall;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$variable = new Variable('someObject');\n\n$args = [];\n$args[] = new Arg(new String_('yes'));\n$args[] = new Arg(new String_('maybe'));\n\nreturn new MethodCall($variable, 'methodName', $args);\n```\n\n↓\n\n```php\n$someObject-\u003emethodName('yes', 'maybe')\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable holding object */`\n * `$name` - `/** @var Identifier|Expr Method name */`\n * `$args` - `/** @var array\u003cArg|VariadicPlaceholder\u003e Arguments */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\New_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\n// anonymous class\n\nuse PhpParser\\Node\\Expr\\New_;\nuse PhpParser\\Node\\Stmt\\Class_;\n\n$class = new Class_(null);\n\nreturn new New_($class);\n```\n\n↓\n\n```php\nnew class\n{\n}\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\New_;\nuse PhpParser\\Node\\Name;\n\n$class = new Name('SomeClass');\n\nreturn new New_($class);\n```\n\n↓\n\n```php\nnew SomeClass()\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$class` - `/** @var Node\\Name|Expr|Node\\Stmt\\Class_ Class name */`\n * `$args` - `/** @var array\u003cArg|VariadicPlaceholder\u003e Arguments */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\NullsafeMethodCall`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\NullsafeMethodCall;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new NullsafeMethodCall($variable, 'methodName');\n```\n\n↓\n\n```php\n$variableName?-\u003emethodName()\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable holding object */`\n * `$name` - `/** @var Identifier|Expr Method name */`\n * `$args` - `/** @var array\u003cArg|VariadicPlaceholder\u003e Arguments */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\NullsafePropertyFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\NullsafePropertyFetch;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new NullsafePropertyFetch($variable, 'someProperty');\n```\n\n↓\n\n```php\n$variableName?-\u003esomeProperty\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable holding object */`\n * `$name` - `/** @var Identifier|Expr Property name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\PropertyFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\PropertyFetch;\nuse PhpParser\\Node\\Expr\\Variable;\n\n$variable = new Variable('variableName');\n\nreturn new PropertyFetch($variable, 'propertyName');\n```\n\n↓\n\n```php\n$variableName-\u003epropertyName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr Variable holding object */`\n * `$name` - `/** @var Identifier|Expr Property name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\StaticCall`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\StaticCall;\nuse PhpParser\\Node\\Name\\FullyQualified;\n\n$fullyQualified = new FullyQualified('ClassName');\n\nreturn new StaticCall($fullyQualified, 'methodName');\n```\n\n↓\n\n```php\n\\ClassName::methodName()\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$class` - `/** @var Node\\Name|Expr Class name */`\n * `$name` - `/** @var Identifier|Expr Method name */`\n * `$args` - `/** @var array\u003cArg|VariadicPlaceholder\u003e Arguments */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\StaticPropertyFetch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\StaticPropertyFetch;\nuse PhpParser\\Node\\Name\\FullyQualified;\n\n$class = new FullyQualified('StaticClassName');\n\nreturn new StaticPropertyFetch($class, 'someProperty');\n```\n\n↓\n\n```php\n\\StaticClassName::$someProperty\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$class` - `/** @var Name|Expr Class name */`\n * `$name` - `/** @var VarLikeIdentifier|Expr Property name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Ternary`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ConstFetch;\nuse PhpParser\\Node\\Expr\\Ternary;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Name;\n\n$variable = new Variable('variableName');\n\n$trueConstFetch = new ConstFetch(new Name('true'));\n$falseConstFetch = new ConstFetch(new Name('false'));\n\nreturn new Ternary($variable, $trueConstFetch, $falseConstFetch);\n```\n\n↓\n\n```php\n$variableName ? true : false\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Expr Condition */`\n * `$if` - `/** @var null|Expr Expression for true */`\n * `$else` - `/** @var Expr Expression for false */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Throw_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Throw_;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$string = new String_('some string');\n\nreturn new Throw_($string);\n```\n\n↓\n\n```php\nthrow 'some string'\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Node\\Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Expr\\Variable`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\n\nreturn new Variable('variableName');\n```\n\n↓\n\n```php\n$variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var string|Expr Name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\MatchArm`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\MatchArm;\nuse PhpParser\\Node\\Scalar\\LNumber;\nuse PhpParser\\Node\\Scalar\\String_;\n\n$conds = [new LNumber(1)];\n$body = new String_('yes');\n\nreturn new MatchArm($conds, $body);\n```\n\n↓\n\n```php\n1 =\u003e 'yes'\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$conds` - `/** @var null|Node\\Expr[] */`\n * `$body` - `/** @var Node\\Expr */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Name`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name;\n\nreturn new Name('shortName');\n```\n\n↓\n\n```php\nshortName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$parts` - `/**\n     * @var string[] Parts of the name\n     * @deprecated Use getParts() instead\n     */`\n * `$specialClassNames` - ``\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Name\\FullyQualified`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name\\FullyQualified;\n\nreturn new FullyQualified('SomeNamespace\\ShortName');\n```\n\n↓\n\n```php\n\\SomeNamespace\\ShortName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$parts` - `/**\n     * @var string[] Parts of the name\n     * @deprecated Use getParts() instead\n     */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\NullableType`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\NullableType;\n\nreturn new NullableType('SomeType');\n```\n\n↓\n\n```php\n?SomeType\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$type` - `/** @var Identifier|Name Type */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Param`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Param;\n\n$variable = new Variable('variableName');\n\nreturn new Param($variable);\n```\n\n↓\n\n```php\n$variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$type` - `/** @var null|Identifier|Name|ComplexType Type declaration */`\n * `$byRef` - `/** @var bool Whether parameter is passed by reference */`\n * `$variadic` - `/** @var bool Whether this is a variadic argument */`\n * `$var` - `/** @var Expr\\Variable|Expr\\Error Parameter variable */`\n * `$default` - `/** @var null|Expr Default value */`\n * `$flags` - `/** @var int */`\n * `$attrGroups` - `/** @var AttributeGroup[] PHP attribute groups */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Scalar\\DNumber`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\DNumber;\n\nreturn new DNumber(10.5);\n```\n\n↓\n\n```php\n10.5\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$value` - `/** @var float Number value */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Scalar\\Encapsed`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\Encapsed;\n\nreturn new Encapsed([new Variable('variableName')]);\n```\n\n↓\n\n```php\n\"{$variableName}\"\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$parts` - `/** @var Expr[] list of string parts */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Scalar\\LNumber`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\LNumber;\n\nreturn new LNumber(1000);\n```\n\n↓\n\n```php\n1000\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$value` - `/** @var int Number value */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Scalar\\String_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\String_;\n\nreturn new String_('some string');\n```\n\n↓\n\n```php\n'some string'\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$value` - `/** @var string String value */`\n * `$replacements` - ``\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\ClassConst`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Const_;\nuse PhpParser\\Node\\Scalar\\String_;\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\ClassConst;\n\n$defaultValue = new String_('default value');\n$const = new Const_('SOME_CLASS_CONSTANT', $defaultValue);\n\nreturn new ClassConst([$const], Class_::MODIFIER_PUBLIC);\n```\n\n↓\n\n```php\npublic const SOME_CLASS_CONSTANT = 'default value';\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$flags` - `/** @var int Modifiers */`\n * `$consts` - `/** @var Node\\Const_[] Constant declarations */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\ClassMethod`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\ClassMethod;\n\n$classMethod = new ClassMethod('methodName');\n$classMethod-\u003eflags = Class_::MODIFIER_PUBLIC;\n\nreturn $classMethod;\n```\n\n↓\n\n```php\npublic function methodName()\n{\n}\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Identifier;\nuse PhpParser\\Node\\Param;\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\ClassMethod;\n\n$classMethod = new ClassMethod('methodName');\n$classMethod-\u003eflags = Class_::MODIFIER_PRIVATE;\n\n$param = new Param(new Variable('paramName'));\n$classMethod-\u003eparams = [$param];\n$classMethod-\u003ereturnType = new Identifier('string');\n\nreturn $classMethod;\n```\n\n↓\n\n```php\nprivate function methodName($paramName) : string\n{\n}\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Assign;\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\LNumber;\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\ClassMethod;\nuse PhpParser\\Node\\Stmt\\Expression;\n\n$classMethod = new ClassMethod('methodName');\n$classMethod-\u003eflags = Class_::MODIFIER_PUBLIC;\n\n$variable = new Variable('some');\n$number = new LNumber(10000);\n$assign = new Assign($variable, $number);\n\n$classMethod-\u003estmts[] = new Expression($assign);\n\nreturn $classMethod;\n```\n\n↓\n\n```php\npublic function methodName()\n{\n    $some = 10000;\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$flags` - `/** @var int Flags */`\n * `$byRef` - `/** @var bool Whether to return by reference */`\n * `$name` - `/** @var Node\\Identifier Name */`\n * `$params` - `/** @var Node\\Param[] Parameters */`\n * `$returnType` - `/** @var null|Node\\Identifier|Node\\Name|Node\\ComplexType Return type */`\n * `$stmts` - `/** @var Node\\Stmt[]|null Statements */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n * `$magicNames` - ``\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Class_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\n\nreturn new Class_('ClassName');\n```\n\n↓\n\n```php\nclass ClassName\n{\n}\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\n\n$class = new Class_('ClassName');\n$class-\u003eflags |= Class_::MODIFIER_FINAL;\n\nreturn $class;\n```\n\n↓\n\n```php\nfinal class ClassName\n{\n}\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name\\FullyQualified;\nuse PhpParser\\Node\\Stmt\\Class_;\n\n$class = new Class_('ClassName');\n\n$class-\u003eflags = Class_::MODIFIER_FINAL;\n$class-\u003eextends = new FullyQualified('ParentClass');\n\nreturn $class;\n```\n\n↓\n\n```php\nfinal class ClassName extends \\ParentClass\n{\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$flags` - `/** @var int Type */`\n * `$extends` - `/** @var null|Node\\Name Name of extended class */`\n * `$implements` - `/** @var Node\\Name[] Names of implemented interfaces */`\n * `$name` - `/** @var Node\\Identifier|null Name */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n * `$namespacedName` - `/** @var Node\\Name|null Namespaced name (if using NameResolver) */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Const_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Const_;\nuse PhpParser\\Node\\Scalar\\String_;\nuse PhpParser\\Node\\Stmt\\Const_ as ConstStmt;\n\n$consts = [new Const_('CONSTANT_IN_CLASS', new String_('default value'))];\n\nreturn new ConstStmt($consts);\n```\n\n↓\n\n```php\nconst CONSTANT_IN_CLASS = 'default value';\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$consts` - `/** @var Node\\Const_[] Constant declarations */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Declare_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\LNumber;\nuse PhpParser\\Node\\Stmt\\Declare_;\nuse PhpParser\\Node\\Stmt\\DeclareDeclare;\n\n$declareDeclare = new DeclareDeclare('strict_types', new LNumber(1));\n\nreturn new Declare_([$declareDeclare]);\n```\n\n↓\n\n```php\ndeclare (strict_types=1);\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$declares` - `/** @var DeclareDeclare[] List of declares */`\n * `$stmts` - `/** @var Node\\Stmt[]|null Statements */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Do_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\Do_;\n\n$variable = new Variable('variableName');\n\nreturn new Do_($variable);\n```\n\n↓\n\n```php\ndo {\n} while ($variableName);\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$cond` - `/** @var Node\\Expr Condition */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Echo_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\String_;\nuse PhpParser\\Node\\Stmt\\Echo_;\n\n$string = new String_('hello');\n\nreturn new Echo_([$string]);\n```\n\n↓\n\n```php\necho 'hello';\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$exprs` - `/** @var Node\\Expr[] Expressions */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\ElseIf_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ConstFetch;\nuse PhpParser\\Node\\Name;\nuse PhpParser\\Node\\Stmt\\ElseIf_;\nuse PhpParser\\Node\\Stmt\\Return_;\n\n$name = new Name('true');\n$constFetch = new ConstFetch($name);\n$stmt = new Return_();\n\nreturn new ElseIf_($constFetch, [$stmt]);\n```\n\n↓\n\n```php\nelseif (true) {\n    return;\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Node\\Expr Condition */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Foreach_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\Foreach_;\n\n$foreachedVariable = new Variable('foreachedVariableName');\n$asVariable = new Variable('asVariable');\n\nreturn new Foreach_($foreachedVariable, $asVariable);\n```\n\n↓\n\n```php\nforeach ($foreachedVariableName as $asVariable) {\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Node\\Expr Expression to iterate */`\n * `$keyVar` - `/** @var null|Node\\Expr Variable to assign key to */`\n * `$byRef` - `/** @var bool Whether to assign value by reference */`\n * `$valueVar` - `/** @var Node\\Expr Variable to assign value to */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Function_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Function_;\n\nreturn new Function_('some_function');\n```\n\n↓\n\n```php\nfunction some_function()\n{\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$byRef` - `/** @var bool Whether function returns by reference */`\n * `$name` - `/** @var Node\\Identifier Name */`\n * `$params` - `/** @var Node\\Param[] Parameters */`\n * `$returnType` - `/** @var null|Node\\Identifier|Node\\Name|Node\\ComplexType Return type */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n * `$namespacedName` - `/** @var Node\\Name|null Namespaced name (if using NameResolver) */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\If_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\ConstFetch;\nuse PhpParser\\Node\\Name;\nuse PhpParser\\Node\\Stmt\\If_;\n\n$cond = new ConstFetch(new Name('true'));\n\nreturn new If_($cond);\n```\n\n↓\n\n```php\nif (true) {\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Node\\Expr Condition expression */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$elseifs` - `/** @var ElseIf_[] Elseif clauses */`\n * `$else` - `/** @var null|Else_ Else clause */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\InlineHTML`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\InlineHTML;\n\nreturn new InlineHTML('\u003cstrong\u003efeel\u003c/strong\u003e');\n```\n\n↓\n\n```php\n?\u003e\n\u003cstrong\u003efeel\u003c/strong\u003e\u003c?php\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$value` - `/** @var string String */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Interface_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Identifier;\nuse PhpParser\\Node\\Stmt\\Interface_;\n\nreturn new Interface_(new Identifier('InterfaceName'));\n```\n\n↓\n\n```php\ninterface InterfaceName\n{\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$extends` - `/** @var Node\\Name[] Extended interfaces */`\n * `$name` - `/** @var Node\\Identifier|null Name */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n * `$namespacedName` - `/** @var Node\\Name|null Namespaced name (if using NameResolver) */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Label`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Label;\n\nreturn new Label('labelName');\n```\n\n↓\n\n```php\nlabelName:\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Identifier Name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Property`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\Property;\nuse PhpParser\\Node\\Stmt\\PropertyProperty;\nuse PhpParser\\Node\\VarLikeIdentifier;\n\n$propertyProperty = new PropertyProperty(new VarLikeIdentifier('propertyName'));\n\nreturn new Property(Class_::MODIFIER_PUBLIC, [$propertyProperty], [], 'string');\n```\n\n↓\n\n```php\npublic string $propertyName;\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\Property;\nuse PhpParser\\Node\\Stmt\\PropertyProperty;\nuse PhpParser\\Node\\VarLikeIdentifier;\n\n$propertyProperty = new PropertyProperty(new VarLikeIdentifier('propertyName'));\n\nreturn new Property(Class_::MODIFIER_PUBLIC, [$propertyProperty]);\n```\n\n↓\n\n```php\npublic $propertyName;\n```\n\n\u003cbr\u003e\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\Property;\nuse PhpParser\\Node\\Stmt\\PropertyProperty;\n\n$propertyProperties = [new PropertyProperty('firstProperty'), new PropertyProperty('secondProperty')];\n\nreturn new Property(Class_::MODIFIER_STATIC | Class_::MODIFIER_PUBLIC, $propertyProperties);\n```\n\n↓\n\n```php\npublic static $firstProperty, $secondProperty;\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$flags` - `/** @var int Modifiers */`\n * `$props` - `/** @var PropertyProperty[] Properties */`\n * `$type` - `/** @var null|Identifier|Name|ComplexType Type declaration */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\PropertyProperty`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\Property;\nuse PhpParser\\Node\\Stmt\\PropertyProperty;\n\n$class = new Class_('ClassName');\n\n$propertyProperty = new PropertyProperty('someProperty');\n$property = new Property(Class_::MODIFIER_PRIVATE, [$propertyProperty]);\n\n$class-\u003estmts[] = $property;\n\nreturn $propertyProperty;\n```\n\n↓\n\n```php\n$someProperty\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Node\\VarLikeIdentifier Name */`\n * `$default` - `/** @var null|Node\\Expr Default */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\StaticVar`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\StaticVar;\n\n$variable = new Variable('variableName');\n\nreturn new StaticVar($variable);\n```\n\n↓\n\n```php\n$variableName\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$var` - `/** @var Expr\\Variable Variable */`\n * `$default` - `/** @var null|Node\\Expr Default value */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Static_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\Static_;\nuse PhpParser\\Node\\Stmt\\StaticVar;\n\n$staticVars = [new StaticVar(new Variable('static'))];\n\nreturn new Static_($staticVars);\n```\n\n↓\n\n```php\nstatic $static;\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$vars` - `/** @var StaticVar[] Variable definitions */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Switch_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Scalar\\LNumber;\nuse PhpParser\\Node\\Stmt\\Case_;\nuse PhpParser\\Node\\Stmt\\Switch_;\n\n$cond = new Variable('variableName');\n$cases = [new Case_(new LNumber(1))];\n\nreturn new Switch_($cond, $cases);\n```\n\n↓\n\n```php\nswitch ($variableName) {\n    case 1:\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Node\\Expr Condition */`\n * `$cases` - `/** @var Case_[] Case list */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Throw_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Scalar\\String_;\nuse PhpParser\\Node\\Stmt\\Throw_;\n\n$string = new String_('some string');\n\nreturn new Throw_($string);\n```\n\n↓\n\n```php\nthrow 'some string';\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$expr` - `/** @var Node\\Expr Expression */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\TraitUse`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name\\FullyQualified;\nuse PhpParser\\Node\\Stmt\\TraitUse;\n\nreturn new TraitUse([new FullyQualified('TraitName')]);\n```\n\n↓\n\n```php\nuse \\TraitName;\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$traits` - `/** @var Node\\Name[] Traits */`\n * `$adaptations` - `/** @var TraitUseAdaptation[] Adaptations */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name\\FullyQualified;\nuse PhpParser\\Node\\Stmt\\Class_;\nuse PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias;\n\n$traitFullyQualified = new FullyQualified('TraitName');\n\nreturn new Alias($traitFullyQualified, 'method', Class_::MODIFIER_PUBLIC, 'aliasedMethod');\n```\n\n↓\n\n```php\n\\TraitName::method as public aliasedMethod;\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$newModifier` - `/** @var null|int New modifier */`\n * `$newName` - `/** @var null|Node\\Identifier New name */`\n * `$trait` - `/** @var Node\\Name|null Trait name */`\n * `$method` - `/** @var Node\\Identifier Method name */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Trait_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Stmt\\Trait_;\n\nreturn new Trait_('TraitName');\n```\n\n↓\n\n```php\ntrait TraitName\n{\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$name` - `/** @var Node\\Identifier|null Name */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$attrGroups` - `/** @var Node\\AttributeGroup[] PHP attribute groups */`\n * `$namespacedName` - `/** @var Node\\Name|null Namespaced name (if using NameResolver) */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\TryCatch`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name\\FullyQualified;\nuse PhpParser\\Node\\Scalar\\String_;\nuse PhpParser\\Node\\Stmt\\Catch_;\nuse PhpParser\\Node\\Stmt\\Echo_;\nuse PhpParser\\Node\\Stmt\\Finally_;\nuse PhpParser\\Node\\Stmt\\TryCatch;\n\n$echo = new Echo_([new String_('one')]);\n$tryStmts = [$echo];\n\n$echo2 = new Echo_([new String_('two')]);\n$catch = new Catch_([new FullyQualified('SomeType')], null, [$echo2]);\n\n$echo3 = new Echo_([new String_('three')]);\n$finally = new Finally_([$echo3]);\n\nreturn new TryCatch($tryStmts, [$catch]);\n```\n\n↓\n\n```php\ntry {\n    echo 'one';\n} catch (\\SomeType) {\n    echo 'two';\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n * `$catches` - `/** @var Catch_[] Catches */`\n * `$finally` - `/** @var null|Finally_ Optional finally node */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Unset_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\Unset_;\n\n$variable = new Variable('variableName');\n\nreturn new Unset_([$variable]);\n```\n\n↓\n\n```php\nunset($variableName);\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$vars` - `/** @var Node\\Expr[] Variables to unset */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\Use_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Name;\nuse PhpParser\\Node\\Stmt\\Use_;\nuse PhpParser\\Node\\Stmt\\UseUse;\n\n$useUse = new UseUse(new Name('UsedNamespace'));\n\nreturn new Use_([$useUse]);\n```\n\n↓\n\n```php\nuse UsedNamespace;\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$type` - `/** @var int Type of alias */`\n * `$uses` - `/** @var UseUse[] Aliases */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\Stmt\\While_`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Expr\\Variable;\nuse PhpParser\\Node\\Stmt\\While_;\n\nreturn new While_(new Variable('variableName'));\n```\n\n↓\n\n```php\nwhile ($variableName) {\n}\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$cond` - `/** @var Node\\Expr Condition */`\n * `$stmts` - `/** @var Node\\Stmt[] Statements */`\n\n\u003cbr\u003e\n\n## `PhpParser\\Node\\UnionType`\n\n### Example PHP Code\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nuse PhpParser\\Node\\Identifier;\nuse PhpParser\\Node\\UnionType;\n\n$unionedTypes = [new Identifier('string'), new Identifier('int')];\n\nreturn new UnionType($unionedTypes);\n```\n\n↓\n\n```php\nstring|int\n```\n\n\u003cbr\u003e\n\n### Public Properties\n\n * `$types` - `/** @var (Identifier|Name|IntersectionType)[] Types */`\n\n\u003cbr\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frectorphp%2Fphp-parser-nodes-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frectorphp%2Fphp-parser-nodes-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frectorphp%2Fphp-parser-nodes-docs/lists"}