Как получить доступ к закрытой переменной в PHP? - PullRequest
0 голосов
/ 11 октября 2011

Я перепробовал все трюки, доступные в сети, но не знаю почему, я не могу получить доступ к переменной .. вот фрагмент класса, содержащий закрытую переменную:

class PANASONIC_PRICESHEET {

    public $models = array();
    public $options = array();       
    public $accessories = array();    

    private $identifier = '';
    private $name = '';
    private $currency1 = '€';
    private $currency2 = '£';

    /**
     * 
     */        
    public function __construct($name1 = 'unnamed', $identifier1 = '') {
        $this->name = $name1;
        $this->identifier = $identifier1;
    }

    public function getIdentifier() {
        return $this->identifier;       
    }

    /**
     * 
     */        
    public function getName($withIdentifier = false) {       
        if ($withIdentifier) {
            return $this->name . " - " . $this->identifier;
        } else {
            return $this->name;
        }
    }
}

А вот как я к нему обращаюсь:

$thisName = $pricesheet->getName();
$thisIdentifier = $pricesheet->getIdentifier();

И я получаю эту ошибку:

Fatal error: Cannot access private property PANASONIC_PRICESHEET::$name in
C:\AppServ\www\dashboard\sites\all\modules\_custom\pricing_system\pricing_system.inc
on line 316

Как это исправить? Я не могу сделать поле PUBLIC, это вообще не вариант. Любые предложения, пожалуйста.

РЕДАКТИРОВАТЬ - 1

Проблема решена: Я должен был вызвать $ _pricesheet-> getName (); Большое спасибо за предложения.

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Вы можете попытаться вызвать приватную функцию в вашей публичной функции, которая возвращает приватную переменную.Подобно замыканиям в Javascript.

Надеюсь, что это работает

0 голосов
/ 11 октября 2011

Это в настоящее время работает для меня. Взгляните здесь . Наверное, вы пытаетесь получить доступ к $pricesheet->name;

...