0

我有这个函数(在文件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 =(
...
}

我该怎么做才能使此代码正常工作?

谢谢!

4

2 回答 2

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();
    }
}
于 2013-11-07T23:26:54.837 回答
1

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

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

private $contacts;

public function __construct() {
    $this->contacts = db_listar_usuarios();
}
于 2013-11-07T23:27:50.257 回答