在PHP类中使用外部数组

时间:2013-11-07 23:25:05

标签: php mysql arrays class

我有这个函数(在文件functions.php中),它返回一个数据库中用户的列表。

function db_listar_usuarios(){
    $link = db_connect();
    $query = "select * from usuarios" or die("Problemas en el select: " . mysqli_error($link));
    $result = $link->query($query);
    $myArray = array();
    while($row = mysqli_fetch_assoc($result)) {   
        $myArray[$row['nombre']] = $row;
        //print_r($myArray); // for debugging
    }
    return $myArray;
    //print_r($myArray);
}

我希望在另一个文件(server.php)

中的类中使用它
<?php
include('functions.php');

class Server {    
    private $contacts = db_listar_usuarios(); //<-- this doesn't work =(
...
}

如何使此代码正常工作?

谢谢!

2 个答案:

答案 0 :(得分:1)

您无法在该位置调用函数。声明类变量时,它们必须是常量(请参阅:http://www.php.net/manual/en/language.oop5.properties.php)。

您需要使用构造函数来执行此操作。

<?php
include('functions.php');

class Server {    
    private $contacts;

    function __construct(){
        $this->contacts = db_listar_usuarios();
    }
}

答案 1 :(得分:1)

PHP不允许在属性声明中设置动态值。你不能在那个地方调用一个函数。

您必须将该函数调用移动到构造函数,该构造函数在创建该类的实例时自动调用:

private $contacts;

public function __construct() {
    $this->contacts = db_listar_usuarios();
}