Как мне решить это, используя $ this? - PullRequest
0 голосов
/ 02 февраля 2020
function printPrice($price = null)
{
    $oCurrencyModel = getModel('currency');

    if(!$price && $this->price)
    {
        $price = $this->price;
    }
    return $oCurrencyModel->printPrice($price);
}

function printMileage($mileage)
{
    $oCurrencyModel = getModel('currency');

    return $oCurrencyModel->printPrice($mileage);
}

Ошибка:

Неустранимая ошибка: ошибка Uncaught: использование $ this, когда отсутствует в контексте объекта в / home / masanwatch / www/modules/nproduct/nproduct.item.php: 89 Трассировка стека : # 0 / home / masanwatch / www/files/cache/template_compiled/3a2e9f2cf85b939b1b1026ccb734f400.compiled.php (82): nproductItem :: printPrice (0) # 1 / home / masanwatch / www/classes/template/TemplateHandler.class.php (430): include ('/ home / masanwat c ...' ) # 2 / home / masanwatch / www/classes/template/TemplateHandler.class.php (197): TemplateHandler-> _fetch ('file: /// home / ma ...') # 3 / home / masanwatch / www/classes/display/HTMLDisplayHandler.php (61): TemplateHandler- > compile ('./ modules / ncart ...', 'ordercomplete.h ...') # 4 / home / masanwatch / www/classes/display/DisplayHandler.class.php (64): HTMLDisplayHandler-> toDo c (Object (ncartView)) # 5 / home / masanwatch / www/classes/module/ModuleHandler.class.php (1153): DisplayHandler-> printContent (Object (ncartView)) # 6 / home / masanwatch / www/index.php (59): ModuleHandler-> displayContent (Object (ncartView)) # 7 {main} добавлено в / home / masanwatch / www/modules/nproduct/nproduct.item.php в строке 89

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 02 февраля 2020

если вы используете функцию в классе, вы можете вызвать ее как $this, но если вы используете ее на другой странице, вы должны создать объект такого типа, как этот

class foo
{
     function printPrice($price = null)
    {
        $oCurrencyModel = getModel('currency');

        if(!$price && $this->price)
        {
            $price = $this->price;
        }
        return $oCurrencyModel->printPrice($price);
    }

    function printMileage($mileage)
    {
        $oCurrencyModel = getModel('currency');

        return $oCurrencyModel->printPrice($mileage);
    }
}

$bar = new foo;
$mileage = null;
$bar->printMileage($mileage);
...