JavaScriptとPHPの配列の扱い
そういえば配列における「参照渡し」と「値渡し」の挙動が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では、関数に配列を渡すと値渡しとなる。
$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);
リソースを節約するには参照渡しを明示したほうがイイね( ^ω^)
TrackBack URL :
Comments (0)
