当我写下面给出的代码时,运作良好
public function Sidenews(){
$sql = "SELECT * FROM news WHERE id <> 1 ORDER BY id ASC";
$result_array=self::find_by_sql($sql);
array_shift($result_array);
return !empty($result_array) ? $result_array : false;
}
但是当我尝试编写下面给出的代码时,它无法正常工作?任何人都可以告诉我
public function Sidenews(){
$sql = "SELECT * FROM news WHERE id <> 1 ORDER BY id ASC";
$result_array=self::find_by_sql($sql);
return !empty($result_array) ? array_shift($result_array) : false;
}
在这种情况下我面临着这个错误,注意:试图获取非对象的属性。
答案 0 :(得分:0)
如果你的sql返回ie。 3行,我们在上面的案例中有其他结果
案例1。
$result_array=array(
array('colum' => 'value1'), array('column' => 'value2'), array('column'=>'value3')
);
array_shift($result_array);
//now your result array is shorter, because first row was removed
var_dump(!empty($result_array) ? $result_array : false);
输出:
array(2) {
[0]=>
array(1) {
["column"]=>
string(6) "value2"
}
[1]=>
array(1) {
["column"]=>
string(6) "value3"
}
}
说明:删除第一行,检查结果是否有更多行并返回rest(行集)
案例2。
//$result_array=self::find_by_sql($sql);
$result_array=array(
array('colum' => 'value1'), array('column' => 'value2'), array('column'=>'value3')
);
var_dump(!empty($result_array) ? array_shift($result_array) : false);
输出:
array(1) {
["colum"]=>
string(6) "value1"
}
说明:检查是否有行并返回第一行(未设置,只是单行)