summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/classes/array_access_013.phpt58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/classes/array_access_013.phpt b/tests/classes/array_access_013.phpt
new file mode 100755
index 0000000000..c3dee3f5cb
--- /dev/null
+++ b/tests/classes/array_access_013.phpt
@@ -0,0 +1,58 @@
+--TEST--
+ZE2 arrayAcces & exceptions
+--FILE--
+<?php
+
+class Test implements ArrayAccess
+{
+ public function offsetExists($offset) { throw new Exception(__METHOD__); return false; }
+ public function offsetGet($offset) { throw new Exception(__METHOD__); return $offset; }
+ public function offsetSet($offset, $data ) { throw new Exception(__METHOD__); }
+ public function offsetUnset($offset) { throw new Exception(__METHOD__); }
+}
+
+$t = new Test;
+
+try
+{
+ echo isset($t[0]);
+}
+catch(Exception $e)
+{
+ echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+ echo $t[0];
+}
+catch(Exception $e)
+{
+ echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+ $t[0] = 1;
+}
+catch(Exception $e)
+{
+ echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+ unset($t[0]);
+}
+catch(Exception $e)
+{
+ echo "Caught in " . $e->getMessage() . "()\n";
+}
+?>
+===DONE===
+--EXPECT--
+Caught in Test::offsetExists()
+Caught in Test::offsetGet()
+Caught in Test::offsetSet()
+Caught in Test::offsetUnset()
+===DONE===