php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /opt/php-7.0.1/ext/standard/tests/array/ |
files >> //opt/php-7.0.1/ext/standard/tests/array/array_shift_variation8.phpt |
--TEST-- Test array_shift() function : usage variations - maintaining referenced elements --FILE-- <?php /* Prototype : mixed array_shift(array &$stack) * Description: Pops an element off the beginning of the array * Source code: ext/standard/array.c */ /* * From a comment left by Traps on 09-Jul-2007 on the array_shift documentation page: * For those that may be trying to use array_shift() with an array containing references * (e.g. working with linked node trees), beware that array_shift() may not work as you expect: * it will return a *copy* of the first element of the array, * and not the element itself, so your reference will be lost. * The solution is to reference the first element before removing it with array_shift(): */ echo "*** Testing array_shift() : usage variations ***\n"; // using only array_shift: echo "\n-- Reference result of array_shift: --\n"; $a = 1; $array = array(&$a); $b =& array_shift($array); $b = 2; echo "a = $a, b = $b\n"; // solution: referencing the first element first: echo "\n-- Reference first element before array_shift: --\n"; $a = 1; $array = array(&$a); $b =& $array[0]; array_shift($array); $b = 2; echo "a = $a, b = $b\n"; echo "Done"; ?> --EXPECTF-- *** Testing array_shift() : usage variations *** -- Reference result of array_shift: -- Notice: Only variables should be assigned by reference in %s on line %d a = 1, b = 2 -- Reference first element before array_shift: -- a = 2, b = 2 Doney~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`