bad case:
<?php
foreach($user_detail AS $val) {
if(!empty($val->portrait)) { //如果這個循環從來沒有到達過
$portrait[] = $val->portrait;
}
}
#此時,$portrait爲NULL,而不是Array。
//下面的結果一定是NULL,不論$image_ids是什麼。
$image_ids = array_merge($image_ids, $portrait);
good case:
<?php
$portrait = array(); //作聲明
foreach($user_detail AS $val) {
if(!empty($val->portrait)) { //如果這個循環從來沒有到達過
$portrait[] = $val->portrait;
}
}
#此時,$portrait爲Array,而不是NULL。
//下面函數的結果是正確的。
$image_ids = array_merge($image_ids, $portrait);
結論:PHP變量在使用前最好進行聲明,即使PHP是弱類型的。