| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [2016-08-04 17:54 UTC] cmb@php.net
 
-Assigned To:
+Assigned To: cmb
  [2016-08-04 17:54 UTC] cmb@php.net
  [2016-08-04 23:19 UTC] cmb@php.net
 
-Assigned To: cmb
+Assigned To:
  [2021-01-06 16:19 UTC] cmb@php.net
 
-Status:      Open
+Status:      Closed
-Assigned To:
+Assigned To: cmb
  [2021-01-06 16:19 UTC] cmb@php.net
  | 
    |||||||||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 14:00:01 2025 UTC | 
Description: ------------ array_merge() function returns NULL if any of the arguments are not arrays. This makes for a lot of boilerplate code / guard clauses, such that I, more often than not, rather end up using foreach for merging instead. I don't know if I am the only one who expects it to either: - return a merged array containing all of the valid arrays' keys/values, or - return a merged array containing all of the valid arrays' keys/values before the first "invalid" argument. This latter might (or might not) be preferrable on performance considerations. Please propose a change and/or vote on proposal if this is even possible. If so, I may make a patch if needed. EDIT: as this seems similar to #64909, another proposal would be the ability to change the emitted E_WARNING into a catchable fatal error. This is quite strange that in such case we could catch a java.lang.NullPointerException in Java, but nothing in PHP; quite counter-productive. Test script: --------------- <?php var_dump(array_merge(['what', 'ever'], false)); Expected result: ---------------- array(2) { [0]=> string(4) "what" [1]=> string(4) "ever" } Actual result: -------------- <br /> <b>Warning</b>: array_merge(): Argument #2 is not an array in <b>[...][...]</b> on line <b>2</b><br /> NULL