|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
Patch strict-required-opt.patch for Scripting Engine problem Bug #53399Patch version 2010-11-24 15:27 UTC Return to Bug #53399 | Download this patchThis patch is obsolete Obsoleted by patches: Patch Revisions:Developer: jbafford@zort.net
Index: Zend/zend_compile.c
===================================================================
--- Zend/zend_compile.c (revision 305718)
+++ Zend/zend_compile.c (working copy)
@@ -1504,6 +1504,10 @@
if (op == ZEND_RECV_INIT) {
opline->op2 = *initialization;
} else {
+ if(CG(active_op_array)->required_num_args != CG(active_op_array)->num_args - 1) {
+ zend_error(E_STRICT, "Declaration of required function parameter after optional parameter");
+ }
+
CG(active_op_array)->required_num_args = CG(active_op_array)->num_args;
SET_UNUSED(opline->op2);
}
Index: Zend/tests/func_optarg1.phpt
===================================================================
--- Zend/tests/func_optarg1.phpt (revision 0)
+++ Zend/tests/func_optarg1.phpt (revision 0)
@@ -0,0 +1,14 @@
+--TEST--
+Declaration of required function parameter after optional parameter E_STRICT warning
+--CREDITS--
+John Bafford
+http://bafford.com
+--INI--
+error_reporting=E_STRICT
+--FILE--
+<?php
+function foo($bar, $baz = true, $quux)
+{
+}
+--EXPECTF--
+Strict Standards: Declaration of required function parameter after optional parameter in %s on line %d
Index: Zend/tests/func_optarg2.phpt
===================================================================
--- Zend/tests/func_optarg2.phpt (revision 0)
+++ Zend/tests/func_optarg2.phpt (revision 0)
@@ -0,0 +1,13 @@
+--TEST--
+Declaration of required function parameter after optional parameter E_STRICT warning (E_STRICT disabled)
+--CREDITS--
+John Bafford
+http://bafford.com
+--INI--
+error_reporting=E_ALL
+--FILE--
+<?php
+function foo($bar, $baz = true, $quux)
+{
+}
+--EXPECT--
Index: Zend/tests/call_user_func_005.phpt
===================================================================
--- Zend/tests/call_user_func_005.phpt (revision 305718)
+++ Zend/tests/call_user_func_005.phpt (working copy)
@@ -10,7 +10,7 @@
}
public function teste() {
- return foo::x(function &($a=1,$b) { });
+ return foo::x(function &($a,$b) { });
}
}
|
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 07:00:02 2025 UTC |