--FILE--
<?php
ob_start("get_defined_vars");
-ob_end_clean();
+try {
+ ob_end_clean();
+} catch (\Error $e) {
+ echo $e->getMessage();
+}
?>
-okey
+
+OKAY
--EXPECT--
-okey
+Cannot call get_defined_vars() dynamically
+OKAY
function test($a) {
echo $undef;
}
-test(1);
+try {
+ test(1);
+} catch (\Error $e) {
+ echo $e->getMessage();
+}
?>
---EXPECTF--
-Warning: Cannot call func_get_args() dynamically in %s on line %d
-
-Notice: Undefined variable: undef in %s on line %d
+--EXPECT--
+Cannot call func_get_args() dynamically
function test_calls($func) {
$i = 1;
- array_map($func, [['i' => new stdClass]]);
- var_dump($i);
+ try {
+ array_map($func, [['i' => new stdClass]]);
+ var_dump($i);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
- $func(['i' => new stdClass]);
- var_dump($i);
+ try {
+ $func(['i' => new stdClass]);
+ var_dump($i);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
- call_user_func($func, ['i' => new stdClass]);
- var_dump($i);
+ try {
+ call_user_func($func, ['i' => new stdClass]);
+ var_dump($i);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
}
test_calls('extract');
?>
---EXPECTF--
-Warning: Cannot call extract() dynamically in %s on line %d
-int(1)
-
-Warning: Cannot call extract() dynamically in %s on line %d
-int(1)
-
-Warning: Cannot call extract() dynamically in %s on line %d
-int(1)
+--EXPECT--
+Cannot call extract() dynamically
+Cannot call extract() dynamically
+Cannot call extract() dynamically
--FILE--
<?php
function test() {
- $func = 'extract';
- $func(['a' => 'b']);
- $func = 'compact';
- $func(['a']);
-
- $func = 'get_defined_vars';
- $func();
-
- $func = 'func_get_args';
- $func();
-
- $func = 'func_get_arg';
- $func(1);
-
- $func = 'func_num_args';
- $func();
+ try {
+ $func = 'extract';
+ $func(['a' => 'b']);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
+
+ try {
+ $func = 'compact';
+ $func(['a']);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
+
+ try {
+ $func = 'get_defined_vars';
+ $func();
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
+
+ try {
+ $func = 'func_get_args';
+ $func();
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
+
+ try {
+ $func = 'func_get_arg';
+ $func(1);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
+
+ try {
+ $func = 'func_num_args';
+ $func();
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
}
test();
?>
---EXPECTF--
-Warning: Cannot call extract() dynamically in %s on line %d
-
-Warning: Cannot call compact() dynamically in %s on line %d
-
-Warning: Cannot call get_defined_vars() dynamically in %s on line %d
-
-Warning: Cannot call func_get_args() dynamically in %s on line %d
-
-Warning: Cannot call func_get_arg() dynamically in %s on line %d
-
-Warning: Cannot call func_num_args() dynamically in %s on line %d
+--EXPECT--
+Cannot call extract() dynamically
+Cannot call compact() dynamically
+Cannot call get_defined_vars() dynamically
+Cannot call func_get_args() dynamically
+Cannot call func_get_arg() dynamically
+Cannot call func_num_args() dynamically
function test() {
$i = 1;
- array_map('extract', [['i' => new stdClass]]);
+ try {
+ array_map('extract', [['i' => new stdClass]]);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
$i += 1;
var_dump($i);
}
test();
?>
---EXPECTF--
-Warning: Cannot call extract() dynamically in %s on line %d
+--EXPECT--
+Cannot call extract() dynamically
int(2)
<?php
function test() {
- ((string) 'extract')(['a' => 42]);
+ try {
+ ((string) 'extract')(['a' => 42]);
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
}
test();
?>
---EXPECTF--
-Warning: Cannot call extract() dynamically in %s on line %d
+--EXPECT--
+Cannot call extract() dynamically
ZEND_ASSERT(ex != NULL && ex->func != NULL);
if (ZEND_CALL_INFO(ex) & ZEND_CALL_DYNAMIC) {
- zend_error(E_WARNING, "Cannot call %s dynamically", func_name);
+ zend_throw_error(NULL, "Cannot call %s dynamically", func_name);
return FAILURE;
}
--FILE--
<?php
ob_start("compact");
-ob_end_clean();
+try {
+ ob_end_clean();
+} catch (\Error $e) {
+ echo $e->getMessage();
+}
?>
-okey
+
+OKAY
--EXPECT--
-okey
+Cannot call compact() dynamically
+OKAY