我在system/helper/wholesaler.php
中有以下辅助函数:
<?php
function is_wholesaler() {
return $this->customer->getCustomerGroupId() != 1 ? TRUE : FALSE;
}
?>
我在system/startup.php
问题在于,当我尝试使用该函数时,我收到致命错误“致命错误:在不在对象上下文中时使用$ this”。 有没有办法在帮助器中使用$ this?
另一种选择是在is_wholesaler()
中将$ this作为参数发送,或在library/customer.php
中添加该函数,并在我的opencart模板视图文件中使用$this->customer->is_wholesaler()
调用该函数。
答案 0 :(得分:1)
$this
指的是一个对象(类)实例,你不能在个体中使用它,你可以把函数is_wholesaler
放到一个类中:
class Helper{
private $customer;
public function __construct($customer){
$this->customer = $customer;
}
function is_wholesaler() {
return $this->customer->getCustomerGroupId() != 1 ? TRUE : FALSE;
}
}
$customer = new Customer(); //I suppose you have a class named Customer in library/customer.php
$helper = new Helper($customer);
$is_wholesaler = $heler->is_wholesaler();
或者,您只需将其自身修改为is_wholesaler,如下所示:
function is_wholesaler() {
$customer = new Customer(); //still suppose you have a class named Customer
return $customer->getCustomerGroupId() != 1 ? TRUE : FALSE;
}
答案 1 :(得分:0)
尝试为object
创建Customer
,您可以将object
用作class
$h = new Customer();
function is_wholesaler() {
return $h->getCustomerGroupId() != 1 ? TRUE : FALSE;
}
或者您也可以创建参考,如
return Customer::getCustomerGroupId() != 1 ? TRUE : FALSE;