summaryrefslogtreecommitdiff
path: root/ext/zend_test/tests/observer_retval_by_ref_03.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zend_test/tests/observer_retval_by_ref_03.phpt')
-rw-r--r--ext/zend_test/tests/observer_retval_by_ref_03.phpt42
1 files changed, 42 insertions, 0 deletions
diff --git a/ext/zend_test/tests/observer_retval_by_ref_03.phpt b/ext/zend_test/tests/observer_retval_by_ref_03.phpt
new file mode 100644
index 0000000000..50fe23add1
--- /dev/null
+++ b/ext/zend_test/tests/observer_retval_by_ref_03.phpt
@@ -0,0 +1,42 @@
+--TEST--
+Observer: Retvals by reference are observable that are: IS_VAR, ZEND_RETURNS_FUNCTION
+--SKIPIF--
+<?php if (!extension_loaded('zend-test')) die('skip: zend-test extension required'); ?>
+--INI--
+zend_test.observer.enabled=1
+zend_test.observer.observe_all=1
+zend_test.observer.show_return_value=1
+--FILE--
+<?php
+function getMessage() {
+ return 'I should be observable';
+}
+
+function &foo() {
+ return getMessage(); // IS_VAR + ZEND_RETURNS_FUNCTION
+}
+
+$res = foo(); // Retval used
+foo(); // Retval unused
+
+echo 'Done' . PHP_EOL;
+?>
+--EXPECTF--
+<!-- init '%s/observer_retval_by_ref_%d.php' -->
+<file '%s/observer_retval_by_ref_%d.php'>
+ <!-- init foo() -->
+ <foo>
+ <!-- init getMessage() -->
+ <getMessage>
+ </getMessage:'I should be observable'>
+
+Notice: Only variable references should be returned by reference in %s on line %d
+ </foo:'I should be observable'>
+ <foo>
+ <getMessage>
+ </getMessage:'I should be observable'>
+
+Notice: Only variable references should be returned by reference in %s on line %d
+ </foo:'I should be observable'>
+Done
+</file '%s/observer_retval_by_ref_%d.php'>