繁体   English   中英

更简单的方法吗?

[英]Easier way of doing this?

我有这个代码

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。

当我把它放到我的$数组中时,我需要对这个对象进行预测。

你应该返回一个空数组而不是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;
}

我可能会像你提出的那样做。

我会改变一件事:而不是:

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;
}
$r = mysql_query("SELECT * FROM hobby ORDER BY hobby_name ASC");
return mysql_num_rows($r) > 0 ? return mysql_fetch_array($r) : false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM