0

我有以下帮助函数system/helper/wholesaler.php

<?php
function is_wholesaler() {
  return $this->customer->getCustomerGroupId() != 1 ? TRUE : FALSE;
}
?>

我加载了助手system/startup.php

问题是当我尝试使用该函数时,我收到一个致命错误“致命错误:不在对象上下文中使用 $this”。有没有办法在助手中使用 $this ?

另一种选择是将 $this 作为参数发送is_wholesaler()或添加函数并在我的 opencart 模板视图文件中library/customer.php调用它。$this->customer->is_wholesaler()

4

2 回答 2

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;
}
于 2013-08-23T05:58:58.480 回答
0

尝试object为 the创建一个Customer,您可以将其用作那个object参考class

$h = new Customer();
function is_wholesaler() {
    return $h->getCustomerGroupId() != 1 ? TRUE : FALSE;
}

或者您也可以创建参考,例如

return Customer::getCustomerGroupId() != 1 ? TRUE : FALSE;
于 2013-08-23T05:49:24.520 回答