Php 在类构造函数中使用匿名函数并在方法中使用
我试图在构造函数中使用匿名函数,将其分配给公共变量,然后在方法中使用该变量 我的班级Php 在类构造函数中使用匿名函数并在方法中使用,php,class,methods,constructor,Php,Class,Methods,Constructor,我试图在构造函数中使用匿名函数,将其分配给公共变量,然后在方法中使用该变量 我的班级 class siteAnalytics { public $db_count; // FUNCTION "$db_count" - CALLED FROM "FUNCTIONS.PHP" public $db_sum; //
class siteAnalytics {
public $db_count; // FUNCTION "$db_count" - CALLED FROM "FUNCTIONS.PHP"
public $db_sum; // FUNCTION "$db_sum" - CALLED FROM "FUNCTIONS.PHP"
public $db_readAll; // FUNCTION "$db_readAll" - CALLED FROM "FUNCTIONS.PHP"
public function __construct($db_count, $db_sum, $db_readAll) {
$this->db_count = $db_count;
$this->db_sum = $db_sum;
$this->db_readAll = $db_readAll;
}
public function siteData(){
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => $this->db_count("users", "*", "WHERE a_status='true'"),
);
}
}
$siteAnalytics = new siteAnalytics($db_count, $db_sum, $db_readAll);
print_r($siteAnalytics->siteData());
呼叫上课
class siteAnalytics {
public $db_count; // FUNCTION "$db_count" - CALLED FROM "FUNCTIONS.PHP"
public $db_sum; // FUNCTION "$db_sum" - CALLED FROM "FUNCTIONS.PHP"
public $db_readAll; // FUNCTION "$db_readAll" - CALLED FROM "FUNCTIONS.PHP"
public function __construct($db_count, $db_sum, $db_readAll) {
$this->db_count = $db_count;
$this->db_sum = $db_sum;
$this->db_readAll = $db_readAll;
}
public function siteData(){
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => $this->db_count("users", "*", "WHERE a_status='true'"),
);
}
}
$siteAnalytics = new siteAnalytics($db_count, $db_sum, $db_readAll);
print_r($siteAnalytics->siteData());
错误是什么?
未捕获错误:调用未定义的方法siteAnalytics::db_count()
我在调用$this->db\u count
的数组中的siteData()
方法中得到错误强>
我知道我可以通过方法传递匿名函数,但为什么它在通过构造函数时不起作用。您可以尝试将属性分配给局部变量,然后像调用函数一样调用它:
public function siteData(){
$db_count = $this->db_count;
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => $db_count("users", "*", "WHERE a_status='true'"),
);
}
更新:
您可以尝试用一对括号将属性括起来:
public function siteData(){
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => ($this->db_count)("users", "*", "WHERE a_status='true'"),
);
}
您可以尝试将属性指定给局部变量,然后像调用函数一样调用它:
public function siteData(){
$db_count = $this->db_count;
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => $db_count("users", "*", "WHERE a_status='true'"),
);
}
更新:
您可以尝试用一对括号将属性括起来:
public function siteData(){
// CREATE "SITE DATA" ARRAY FROM QUERIES
$SD_array = array(
'U_active' => ($this->db_count)("users", "*", "WHERE a_status='true'"),
);
}