そういえば配列における「参照渡し」と「値渡し」の挙動がJavaScriptとPHPで異なっていたので書き留めておくことにする(・∀・)!!
■JavaScript
以下のようにJavaScriptでは、関数に配列を渡すと参照渡しとなる。
var ary = ['a', 'b', 'c']; var sample = function(ary){ ary.pop(); } console.log(ary);// ['a', 'b', 'c'] alert('sample'); sample(ary); console.log(ary);// ['a', 'b']
ちなみにalertはconsoleが上手く作動しなかったために使用した。
■PHP
以下のようにPHPでは、関数に配列を渡すとPHP4では値渡しとなる。
$ary = array('a', 'b', 'c'); function sample($ary){ array_pop($ary); } var_dump($ary); sample($ary); var_dump($ary);
(関数内で配列を変更したい場合、)JavaScriptと同じ挙動をPHPで再現するには以下のように記述する必要がある。
$ary = array('a', 'b', 'c'); function sample(&$ary){ array_pop($ary); } var_dump($ary); sample($ary); var_dump($ary);
リソースを節約するには参照渡しを明示したほうがイイね( ^ω^)