我有这段代码
public function getList()
{
$array = array();
$r = mysql_query( "SELECT * FROM hobby ORDER BY hobby_name ASC" );
while( $ro = mysql_fetch_object( $r ) )
{
array_push( $array , $ro );
}
if ( count( $array ) > 0 )
return $array;
else
return false;
}
并且想知道是否有更简单的方法吗?
此代码首先从数据库中获取所有内容,将其推送到数组中,检查其计数并返回数组或返回false。
当我把它放到我的$数组中时,我需要对这个对象进行操作以使其变形。
答案 0 :(得分:3)
你应该返回一个空数组而不是false,然后你可以通过foreach运行它,而不会产生PHP错误。您可以进一步使用$array[] =
代替array_push()
:
public function getList()
{
$array = array();
$r = mysql_query( "SELECT * FROM hobby ORDER BY hobby_name ASC" );
while( $ro = mysql_fetch_object( $r ) )
{
$array[] = $ro;
}
return $array;
}
答案 1 :(得分:2)
我可能会像你提议的那样做。
我会改变一件事:而不是:
array_push( $array , $ro );
我可能会使用:
$array[] = $ro;
避免函数调用,在这种情况下看起来没用(两种语法都应该这样做)。
此外,我总是返回一个数组:该函数被称为“getList
”,因此,在我看来,它应该返回...列表。
即使没有元素,它也应该返回一个空列表(即空array
),而不是布尔值false
。
这也意味着您可以只返回$数组,而不必计算它包含的元素数量;所以,我想我最终会得到这样的东西:
public function getList()
{
$array = array();
$r = mysql_query( "SELECT * FROM hobby ORDER BY hobby_name ASC" );
while( $ro = mysql_fetch_object( $r ) )
{
$array[] = $ro;
}
return $array;
}
答案 2 :(得分:-1)
$r = mysql_query("SELECT * FROM hobby ORDER BY hobby_name ASC");
return mysql_num_rows($r) > 0 ? return mysql_fetch_array($r) : false;