diff options
Diffstat (limited to 'ext/reflection/tests/ReflectionReference.phpt')
-rw-r--r-- | ext/reflection/tests/ReflectionReference.phpt | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ext/reflection/tests/ReflectionReference.phpt b/ext/reflection/tests/ReflectionReference.phpt new file mode 100644 index 0000000000..76d2512123 --- /dev/null +++ b/ext/reflection/tests/ReflectionReference.phpt @@ -0,0 +1,55 @@ +--TEST-- +Basic ReflectionReference functionality +--FILE-- +<?php + +$ary = [0, 1, 2]; +$ref1 =& $ary[1]; +unset($ref1); +$ref2 =& $ary[2]; + +echo "fromArrayElement():\n"; +$r0 = ReflectionReference::fromArrayElement($ary, 0); +var_dump($r0 === null); +$r1 = ReflectionReference::fromArrayElement($ary, 1); +var_dump($r1 instanceof ReflectionReference); +$r2 = ReflectionReference::fromArrayElement($ary, 2); +var_dump($r2 instanceof ReflectionReference); + +echo "getId() #1:\n"; +var_dump($r1->getId() === $r1->getId()); +var_dump($r2->getId() === $r2->getId()); +var_dump($r1->getId() !== $r2->getId()); + +echo "getId() #2:\n"; +$ary2 = [&$ary[1], &$ref2]; +$r1_2 = ReflectionReference::fromArrayElement($ary2, 0); +$r2_2 = ReflectionReference::fromArrayElement($ary2, 1); +var_dump($r1->getId() === $r1_2->getId()); +var_dump($r2->getId() === $r2_2->getId()); + +echo "getId() #3:\n"; +$r1_id = $r1->getId(); +$r2_id = $r2->getId(); +unset($r0, $r1, $r2, $r1_2, $r2_2); +$r1 = ReflectionReference::fromArrayElement($ary, 1); +$r2 = ReflectionReference::fromArrayElement($ary, 2); +var_dump($r1_id === $r1->getId()); +var_dump($r2_id === $r2->getId()); + +?> +--EXPECT-- +fromArrayElement(): +bool(true) +bool(true) +bool(true) +getId() #1: +bool(true) +bool(true) +bool(true) +getId() #2: +bool(true) +bool(true) +getId() #3: +bool(true) +bool(true) |