* 0 => array(
- * 'raw' => string, // The full content of the variable definition, including
- * // whitespace and comments.
- * // This may be an empty string when an item is being skipped.
- * 'is_empty' => bool, // Whether this is an empty list item, i.e. the
- * // second item in `list($a, , $b)`.
- * )
- *
- *
- * Non-empty list items will have the following additional array indexes set:
- *
- * 'assignment' => string, // The content of the assignment part, cleaned of comments.
- * // This could be a nested list.
- * 'nested_list' => bool, // Whether this is a nested list.
+ * 'raw' => string, // The full content of the variable definition, including
+ * // whitespace and comments.
+ * // This may be an empty string when an item is being skipped.
+ * 'assignment' => string, // The content of the assignment part, _cleaned of comments_.
+ * // This may be an empty string for an empty list item;
+ * // it could also be a nested list represented as a string.
+ * 'is_empty' => bool, // Whether this is an empty list item, i.e. the
+ * // second item in `list($a, , $b)`.
+ * 'is_nested_list' => bool, // Whether this is a nested list.
+ * 'variable' => string|false, // The base variable being assigned to or
+ * // FALSE in case of a nested list or avariable variable.
+ * // I.e. `$a` in `list($a['key'])`.
+ * 'assignment_token' => int|false, // The start pointer for the assignment.
+ * 'assignment_end_token' => int|false, // The end pointer for the assignment.
* 'assign_by_reference' => bool, // Is the variable assigned by reference?
* 'reference_token' => int|false, // The stack pointer to the reference operator or
* // FALSE when not a reference assignment.
- * 'variable' => string|false, // The base variable being assigned to or
- * // FALSE in case of a nested list or variable variable.
- * // I.e. `$a` in `list($a['key'])`.
- * 'assignment_token' => int, // The start pointer for the assignment.
- * 'assignment_end_token' => int, // The end pointer for the assignment.
*
*
*
@@ -293,7 +310,7 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
$reference = null;
$list = null;
$lastComma = $opener;
- $current = [];
+ $keys = [];
for ($i = ($opener + 1); $i <= $closer; $i++) {
if (isset(Tokens::$emptyTokens[$tokens[$i]['code']])) {
@@ -302,11 +319,10 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
switch ($tokens[$i]['code']) {
case \T_DOUBLE_ARROW:
- $current['key'] = GetTokensAsString::compact($phpcsFile, $start, $lastNonEmpty, true);
-
- $current['key_token'] = $start;
- $current['key_end_token'] = $lastNonEmpty;
- $current['double_arrow_token'] = $i;
+ $keys['key'] = GetTokensAsString::compact($phpcsFile, $start, $lastNonEmpty, true);
+ $keys['key_token'] = $start;
+ $keys['key_end_token'] = $lastNonEmpty;
+ $keys['double_arrow_token'] = $i;
// Partial reset.
$start = null;
@@ -316,6 +332,7 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
case \T_COMMA:
case $tokens[$closer]['code']:
+ // Check if this is the end of the list or only a token with the same type as the list closer.
if ($tokens[$i]['code'] === $tokens[$closer]['code']) {
if ($i !== $closer) {
$lastNonEmpty = $i;
@@ -326,23 +343,17 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
}
}
+ // Ok, so this is actually the end of the list item.
+ $current = self::$listItemDefaults;
$current['raw'] = \trim(GetTokensAsString::normal($phpcsFile, ($lastComma + 1), ($i - 1)));
if ($start === null) {
$current['is_empty'] = true;
} else {
- $current['is_empty'] = false;
- $current['assignment'] = \trim(
+ $current['assignment'] = \trim(
GetTokensAsString::compact($phpcsFile, $start, $lastNonEmpty, true)
);
- $current['nested_list'] = isset($list);
-
- $current['assign_by_reference'] = false;
- $current['reference_token'] = false;
- if (isset($reference)) {
- $current['assign_by_reference'] = true;
- $current['reference_token'] = $reference;
- }
+ $current['is_nested_list'] = isset($list);
$current['variable'] = false;
if (isset($list) === false && $tokens[$start]['code'] === \T_VARIABLE) {
@@ -350,6 +361,15 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
}
$current['assignment_token'] = $start;
$current['assignment_end_token'] = $lastNonEmpty;
+
+ if (isset($reference)) {
+ $current['assign_by_reference'] = true;
+ $current['reference_token'] = $reference;
+ }
+ }
+
+ if (empty($keys) === false) {
+ $current += $keys;
}
$vars[] = $current;
@@ -360,7 +380,7 @@ public static function getAssignments(File $phpcsFile, $stackPtr)
$reference = null;
$list = null;
$lastComma = $i;
- $current = [];
+ $keys = [];
break;
diff --git a/Tests/Utils/Lists/GetAssignmentsTest.php b/Tests/Utils/Lists/GetAssignmentsTest.php
index bc7f3213..7876d464 100644
--- a/Tests/Utils/Lists/GetAssignmentsTest.php
+++ b/Tests/Utils/Lists/GetAssignmentsTest.php
@@ -105,10 +105,10 @@ public function testGetAssignments($testMarker, $targetToken, $expected)
if (isset($subset['reference_token']) && $subset['reference_token'] !== false) {
$expected[$index]['reference_token'] += $stackPtr;
}
- if (isset($subset['assignment_token'])) {
+ if (isset($subset['assignment_token']) && $subset['assignment_token'] !== false) {
$expected[$index]['assignment_token'] += $stackPtr;
}
- if (isset($subset['assignment_end_token'])) {
+ if (isset($subset['assignment_end_token']) && $subset['assignment_end_token'] !== false) {
$expected[$index]['assignment_end_token'] += $stackPtr;
}
}
@@ -145,19 +145,47 @@ public function dataGetAssignments()
[
0 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '/* comment */',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
2 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
3 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -172,25 +200,25 @@ public function dataGetAssignments()
[
0 => [
'raw' => '$id',
- 'is_empty' => false,
'assignment' => '$id',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$id',
'assignment_token' => 2,
'assignment_end_token' => 2,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '$name',
- 'is_empty' => false,
'assignment' => '$name',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$name',
'assignment_token' => 5,
'assignment_end_token' => 5,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -200,25 +228,25 @@ public function dataGetAssignments()
[
0 => [
'raw' => '$this->propA',
- 'is_empty' => false,
'assignment' => '$this->propA',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 1,
'assignment_end_token' => 3,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '$this->propB',
- 'is_empty' => false,
'assignment' => '$this->propB',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 6,
'assignment_end_token' => 8,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -227,34 +255,34 @@ public function dataGetAssignments()
\T_OPEN_SHORT_ARRAY,
[
0 => [
- 'key' => "'id'",
- 'key_token' => 1,
- 'key_end_token' => 1,
- 'double_arrow_token' => 3,
'raw' => '\'id\' => & $id',
- 'is_empty' => false,
'assignment' => '$id',
- 'nested_list' => false,
- 'assign_by_reference' => true,
- 'reference_token' => 5,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$id',
'assignment_token' => 7,
'assignment_end_token' => 7,
+ 'assign_by_reference' => true,
+ 'reference_token' => 5,
+ 'key' => "'id'",
+ 'key_token' => 1,
+ 'key_end_token' => 1,
+ 'double_arrow_token' => 3,
],
1 => [
- 'key' => "'name'",
- 'key_token' => 10,
- 'key_end_token' => 10,
- 'double_arrow_token' => 12,
'raw' => '\'name\' => $name',
- 'is_empty' => false,
'assignment' => '$name',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$name',
'assignment_token' => 14,
'assignment_end_token' => 14,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'name'",
+ 'key_token' => 10,
+ 'key_end_token' => 10,
+ 'double_arrow_token' => 12,
],
],
],
@@ -264,25 +292,25 @@ public function dataGetAssignments()
[
0 => [
'raw' => '$a',
- 'is_empty' => false,
'assignment' => '$a',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 2,
'assignment_end_token' => 2,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => 'list($b, $c)',
- 'is_empty' => false,
'assignment' => 'list($b, $c)',
- 'nested_list' => true,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => true,
'variable' => false,
'assignment_token' => 5,
'assignment_end_token' => 11,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -291,49 +319,49 @@ public function dataGetAssignments()
\T_LIST,
[
0 => [
- 'key' => "'name'",
- 'key_token' => 2,
- 'key_end_token' => 2,
- 'double_arrow_token' => 4,
'raw' => '\'name\' => $a',
- 'is_empty' => false,
'assignment' => '$a',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 6,
'assignment_end_token' => 6,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'name'",
+ 'key_token' => 2,
+ 'key_end_token' => 2,
+ 'double_arrow_token' => 4,
],
1 => [
- 'key' => "'id'",
- 'key_token' => 9,
- 'key_end_token' => 9,
- 'double_arrow_token' => 11,
'raw' => '\'id\' => $b',
- 'is_empty' => false,
'assignment' => '$b',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$b',
'assignment_token' => 13,
'assignment_end_token' => 13,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'id'",
+ 'key_token' => 9,
+ 'key_end_token' => 9,
+ 'double_arrow_token' => 11,
],
2 => [
- 'key' => "'field'",
- 'key_token' => 16,
- 'key_end_token' => 16,
- 'double_arrow_token' => 18,
'raw' => '\'field\' => $c',
- 'is_empty' => false,
'assignment' => '$c',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$c',
'assignment_token' => 20,
'assignment_end_token' => 20,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'field'",
+ 'key_token' => 16,
+ 'key_end_token' => 16,
+ 'double_arrow_token' => 18,
],
],
],
@@ -343,56 +371,91 @@ public function dataGetAssignments()
[
0 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '$a',
- 'is_empty' => false,
'assignment' => '$a',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 5,
'assignment_end_token' => 5,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
2 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
3 => [
'raw' => '$b',
- 'is_empty' => false,
'assignment' => '$b',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$b',
'assignment_token' => 10,
'assignment_end_token' => 10,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
4 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
5 => [
'raw' => '$c',
- 'is_empty' => false,
'assignment' => '$c',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$c',
'assignment_token' => 14,
'assignment_end_token' => 14,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
6 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
7 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -401,68 +464,75 @@ public function dataGetAssignments()
\T_LIST,
[
0 => [
- 'key' => '"name"',
- 'key_token' => 4,
- 'key_end_token' => 4,
- 'double_arrow_token' => 6,
'raw' => '"name" => $this->name',
- 'is_empty' => false,
'assignment' => '$this->name',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 8,
'assignment_end_token' => 10,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"name"',
+ 'key_token' => 4,
+ 'key_end_token' => 4,
+ 'double_arrow_token' => 6,
],
1 => [
- 'key' => '"colour"',
- 'key_token' => 14,
- 'key_end_token' => 14,
- 'double_arrow_token' => 16,
'raw' => '"colour" => $this->colour',
- 'is_empty' => false,
'assignment' => '$this->colour',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 18,
'assignment_end_token' => 20,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"colour"',
+ 'key_token' => 14,
+ 'key_end_token' => 14,
+ 'double_arrow_token' => 16,
],
2 => [
- 'key' => '"age"',
- 'key_token' => 24,
- 'key_end_token' => 24,
- 'double_arrow_token' => 26,
'raw' => '"age" => $this->age',
- 'is_empty' => false,
'assignment' => '$this->age',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 28,
'assignment_end_token' => 30,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"age"',
+ 'key_token' => 24,
+ 'key_end_token' => 24,
+ 'double_arrow_token' => 26,
],
3 => [
- 'key' => '"cuteness"',
- 'key_token' => 34,
- 'key_end_token' => 34,
- 'double_arrow_token' => 36,
'raw' => '"cuteness" => $this->cuteness',
- 'is_empty' => false,
'assignment' => '$this->cuteness',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$this',
'assignment_token' => 38,
'assignment_end_token' => 40,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"cuteness"',
+ 'key_token' => 34,
+ 'key_end_token' => 34,
+ 'double_arrow_token' => 36,
],
4 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -471,34 +541,34 @@ public function dataGetAssignments()
[\T_OPEN_SHORT_ARRAY, \T_OPEN_SQUARE_BRACKET],
[
0 => [
- 'key' => "'a'",
- 'key_token' => 1,
- 'key_end_token' => 1,
- 'double_arrow_token' => 3,
'raw' => '\'a\' => [&$a, $b]',
- 'is_empty' => false,
'assignment' => '[&$a, $b]',
- 'nested_list' => true,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => true,
'variable' => false,
'assignment_token' => 5,
'assignment_end_token' => 11,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'a'",
+ 'key_token' => 1,
+ 'key_end_token' => 1,
+ 'double_arrow_token' => 3,
],
1 => [
- 'key' => "'b'",
- 'key_token' => 14,
- 'key_end_token' => 14,
- 'double_arrow_token' => 16,
'raw' => '\'b\' => [$c, &$d]',
- 'is_empty' => false,
'assignment' => '[$c, &$d]',
- 'nested_list' => true,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => true,
'variable' => false,
'assignment_token' => 18,
'assignment_end_token' => 24,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'b'",
+ 'key_token' => 14,
+ 'key_end_token' => 14,
+ 'double_arrow_token' => 16,
],
],
],
@@ -508,36 +578,36 @@ public function dataGetAssignments()
[
0 => [
'raw' => '$a[]',
- 'is_empty' => false,
'assignment' => '$a[]',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 2,
'assignment_end_token' => 4,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '$a[0]',
- 'is_empty' => false,
'assignment' => '$a[0]',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 7,
'assignment_end_token' => 10,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
2 => [
'raw' => '$a[]',
- 'is_empty' => false,
'assignment' => '$a[]',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 13,
'assignment_end_token' => 15,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -546,129 +616,136 @@ public function dataGetAssignments()
\T_OPEN_SHORT_ARRAY,
[
0 => [
- 'key' => "'a' . 'b'",
- 'key_token' => 3,
- 'key_end_token' => 7,
- 'double_arrow_token' => 9,
'raw' => '\'a\' . \'b\' => $a',
- 'is_empty' => false,
'assignment' => '$a',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$a',
'assignment_token' => 11,
'assignment_end_token' => 11,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'a' . 'b'",
+ 'key_token' => 3,
+ 'key_end_token' => 7,
+ 'double_arrow_token' => 9,
],
1 => [
- 'key' => '($a * 2)',
- 'key_token' => 15,
- 'key_end_token' => 21,
- 'double_arrow_token' => 24,
'raw' => '($a * 2)
=> $b->prop->prop /* comment */ [\'index\']',
- 'is_empty' => false,
'assignment' => '$b->prop->prop [\'index\']',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$b',
'assignment_token' => 26,
'assignment_end_token' => 36,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '($a * 2)',
+ 'key_token' => 15,
+ 'key_end_token' => 21,
+ 'double_arrow_token' => 24,
],
2 => [
- 'key' => 'CONSTANT & OTHER',
- 'key_token' => 40,
- 'key_end_token' => 46,
- 'double_arrow_token' => 48,
'raw' => 'CONSTANT & /*comment*/ OTHER => $c',
- 'is_empty' => false,
'assignment' => '$c',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$c',
'assignment_token' => 50,
'assignment_end_token' => 50,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => 'CONSTANT & OTHER',
+ 'key_token' => 40,
+ 'key_end_token' => 46,
+ 'double_arrow_token' => 48,
],
3 => [
- 'key' => '(string) &$c',
- 'key_token' => 54,
- 'key_end_token' => 57,
- 'double_arrow_token' => 59,
'raw' => '(string) &$c => &$d["D"]',
- 'is_empty' => false,
'assignment' => '$d["D"]',
- 'nested_list' => false,
- 'assign_by_reference' => true,
- 'reference_token' => 61,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$d',
'assignment_token' => 62,
'assignment_end_token' => 65,
+ 'assign_by_reference' => true,
+ 'reference_token' => 61,
+ 'key' => '(string) &$c',
+ 'key_token' => 54,
+ 'key_end_token' => 57,
+ 'double_arrow_token' => 59,
],
4 => [
- 'key' => 'get_key()[1]',
- 'key_token' => 69,
- 'key_end_token' => 74,
- 'double_arrow_token' => 76,
'raw' => 'get_key()[1] => $e',
- 'is_empty' => false,
'assignment' => '$e',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$e',
'assignment_token' => 78,
'assignment_end_token' => 78,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => 'get_key()[1]',
+ 'key_token' => 69,
+ 'key_end_token' => 74,
+ 'double_arrow_token' => 76,
],
5 => [
- 'key' => '$prop[\'index\']',
- 'key_token' => 82,
- 'key_end_token' => 85,
- 'double_arrow_token' => 87,
'raw' => '$prop[\'index\'] => $f->prop[\'index\']',
- 'is_empty' => false,
'assignment' => '$f->prop[\'index\']',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$f',
'assignment_token' => 89,
'assignment_end_token' => 94,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '$prop[\'index\']',
+ 'key_token' => 82,
+ 'key_end_token' => 85,
+ 'double_arrow_token' => 87,
],
6 => [
- 'key' => '$obj->fieldname',
- 'key_token' => 98,
- 'key_end_token' => 100,
- 'double_arrow_token' => 102,
'raw' => '$obj->fieldname => ${$g}',
- 'is_empty' => false,
'assignment' => '${$g}',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => false,
'assignment_token' => 104,
'assignment_end_token' => 107,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '$obj->fieldname',
+ 'key_token' => 98,
+ 'key_end_token' => 100,
+ 'double_arrow_token' => 102,
],
7 => [
- 'key' => '$simple',
- 'key_token' => 111,
- 'key_end_token' => 111,
- 'double_arrow_token' => 113,
'raw' => '$simple => &$h',
- 'is_empty' => false,
'assignment' => '$h',
- 'nested_list' => false,
- 'assign_by_reference' => true,
- 'reference_token' => 115,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$h',
'assignment_token' => 116,
'assignment_end_token' => 116,
+ 'assign_by_reference' => true,
+ 'reference_token' => 115,
+ 'key' => '$simple',
+ 'key_token' => 111,
+ 'key_end_token' => 111,
+ 'double_arrow_token' => 113,
],
8 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -677,19 +754,19 @@ public function dataGetAssignments()
\T_LIST,
[
0 => [
- 'key' => 'get_key()[1]',
- 'key_token' => 2,
- 'key_end_token' => 7,
- 'double_arrow_token' => 9,
'raw' => 'get_key()[1] => &$e',
- 'is_empty' => false,
'assignment' => '$e',
- 'nested_list' => false,
- 'assign_by_reference' => true,
- 'reference_token' => 11,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$e',
'assignment_token' => 12,
'assignment_end_token' => 12,
+ 'assign_by_reference' => true,
+ 'reference_token' => 11,
+ 'key' => 'get_key()[1]',
+ 'key_token' => 2,
+ 'key_end_token' => 7,
+ 'double_arrow_token' => 9,
],
],
],
@@ -699,25 +776,25 @@ public function dataGetAssignments()
[
0 => [
'raw' => '${$drink}',
- 'is_empty' => false,
'assignment' => '${$drink}',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => false,
'assignment_token' => 3,
'assignment_end_token' => 6,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '$foo->{$bar[\'baz\']}',
- 'is_empty' => false,
'assignment' => '$foo->{$bar[\'baz\']}',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$foo',
'assignment_token' => 9,
'assignment_end_token' => 16,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
],
],
@@ -726,36 +803,36 @@ public function dataGetAssignments()
\T_LIST,
[
0 => [
- 'key' => "'a'",
- 'key_token' => 4,
- 'key_end_token' => 4,
- 'double_arrow_token' => 6,
'raw' => '\'a\' =>
list("x" => $x1, "y" => $y1)',
- 'is_empty' => false,
'assignment' => 'list("x" => $x1, "y" => $y1)',
- 'nested_list' => true,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => true,
'variable' => false,
'assignment_token' => 9,
'assignment_end_token' => 23,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'a'",
+ 'key_token' => 4,
+ 'key_end_token' => 4,
+ 'double_arrow_token' => 6,
],
1 => [
- 'key' => "'b'",
- 'key_token' => 27,
- 'key_end_token' => 27,
- 'double_arrow_token' => 29,
'raw' => '\'b\' =>
list("x" => $x2, "y" => $y2)',
- 'is_empty' => false,
'assignment' => 'list("x" => $x2, "y" => $y2)',
- 'nested_list' => true,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => true,
'variable' => false,
'assignment_token' => 32,
'assignment_end_token' => 46,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => "'b'",
+ 'key_token' => 27,
+ 'key_end_token' => 27,
+ 'double_arrow_token' => 29,
],
],
],
@@ -765,29 +842,29 @@ public function dataGetAssignments()
[
0 => [
'raw' => '$unkeyed',
- 'is_empty' => false,
'assignment' => '$unkeyed',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$unkeyed',
'assignment_token' => 2,
'assignment_end_token' => 2,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
- 'key' => '"key"',
- 'key_token' => 5,
- 'key_end_token' => 5,
- 'double_arrow_token' => 7,
'raw' => '"key" => $keyed',
- 'is_empty' => false,
'assignment' => '$keyed',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$keyed',
'assignment_token' => 9,
'assignment_end_token' => 9,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"key"',
+ 'key_token' => 5,
+ 'key_end_token' => 5,
+ 'double_arrow_token' => 7,
],
],
],
@@ -797,34 +874,62 @@ public function dataGetAssignments()
[
0 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
1 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
2 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
3 => [
'raw' => '',
+ 'assignment' => '',
'is_empty' => true,
+ 'is_nested_list' => false,
+ 'variable' => false,
+ 'assignment_token' => false,
+ 'assignment_end_token' => false,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
],
4 => [
- 'key' => '"key"',
- 'key_token' => 6,
- 'key_end_token' => 6,
- 'double_arrow_token' => 8,
'raw' => '"key" => $keyed',
- 'is_empty' => false,
'assignment' => '$keyed',
- 'nested_list' => false,
- 'assign_by_reference' => false,
- 'reference_token' => false,
+ 'is_empty' => false,
+ 'is_nested_list' => false,
'variable' => '$keyed',
'assignment_token' => 10,
'assignment_end_token' => 10,
+ 'assign_by_reference' => false,
+ 'reference_token' => false,
+ 'key' => '"key"',
+ 'key_token' => 6,
+ 'key_end_token' => 6,
+ 'double_arrow_token' => 8,
],
],
],