我有这个函数(在文件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 =(
...
}
如何使此代码正常工作?
谢谢!
答案 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();
}