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是弱类型的。