From:             
Operating system: all
PHP version:      trunk-SVN-2010-11-24 (SVN)
Package:          Scripting Engine problem
Bug Type:         Feature/Change Request
Bug description:Add E_STRICT when defining a required funcparameter after an 
optional parameter

Description:
------------
PHP does not emit a warning of any kind when defining a function with a
required 

parameter after an optional parameter. For example:

function foo($optional = 1, $required) {}



It doesn't make sense to define a required parameter after an optional one,


since 

that effectively makes all preceding optional parameters required. Since
this is 

an error that can produce bugs and other warnings if one is not careful
(calling 

the above function with less than two parameters will cause warnings to be


emitted 

for the missing $required parameter), PHP should emit a warning of some
kind 

when 

functions like this are defined.



The attached patch includes the following changes:



* add an E_STRICT warning when such a function is defined. (The warning
will 

only 

appear when E_STRICT is included in the php.ini, since it happens at script


compile time, before error_reporting can be called.)



* add Zend/tests/func_optarg1.phpt and Zend/tests/func_optarg2.phpt to test
for 

the presence and absence of the warning



* Fixes Zend/tests/call_user_func_005.phpt, which fails with the warning
added.


-- 
Edit bug report at http://bugs.php.net/bug.php?id=53399&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=53399&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=53399&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=53399&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=53399&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=53399&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=53399&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=53399&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=53399&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=53399&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=53399&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=53399&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=53399&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=53399&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=53399&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=53399&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=53399&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=53399&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=53399&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=53399&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=53399&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=53399&r=mysqlcfg

Reply via email to