-<?php
+<?php declare(strict_types=1);
namespace PhpParser\Node\Stmt;
class DeclareDeclare extends Node\Stmt
{
- /** @var string Key */
+ /** @var Node\Identifier Key */
public $key;
/** @var Node\Expr Value */
public $value;
/**
* Constructs a declare key=>value pair node.
*
- * @param string $key Key
- * @param Node\Expr $value Value
- * @param array $attributes Additional attributes
+ * @param string|Node\Identifier $key Key
+ * @param Node\Expr $value Value
+ * @param array $attributes Additional attributes
*/
- public function __construct($key, Node\Expr $value, array $attributes = array()) {
+ public function __construct($key, Node\Expr $value, array $attributes = []) {
parent::__construct($attributes);
- $this->key = $key;
+ $this->key = \is_string($key) ? new Node\Identifier($key) : $key;
$this->value = $value;
}
- public function getSubNodeNames() {
- return array('key', 'value');
+ public function getSubNodeNames() : array {
+ return ['key', 'value'];
+ }
+
+ public function getType() : string {
+ return 'Stmt_DeclareDeclare';
}
}