Это глобальная переменная класса и функция, которая всегда вызывается первой.
private $product_sku;
public function indexAction(){
$request = $this->_getValidRequest();
global $product_sku;
if ($this->flag == FALSE) {
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $product_sku);
$product_sku = $request['sku'];
}
else {
$product = Mage::getModel('catalog/product')->loadByAttribute('printed_order_number', $request['pon']);
$product_sku = $product->getSku();
}
// here I call the other function
}
И другая функция, использующая глобальную переменную
public function showPopUpInProductViewPageAction(){
$request = $this->_getValidRequest();
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $GLOBALS['product_sku']);
Mage::log($GLOBALS['product_sku']); // logging $product_sku to check its value, but it's empty
}
Это не полные функции, а только код, соответствующий проблеме
Итак, во второй функции объект $product
пуст, потому что product_sku
не имеет значения.
Я не хочу повторять код проверки flag
.
Как я могу использовать это как в Java, то есть - я объявляю переменную в начале класса, я присваиваю ей значение (только один раз) в первой функции, а затем я использую это значение везде, где я хочу в классе.
$this
, не делает егоglobal
... фактически доступ к нему через$this
делает его переменной экземпляра или свойством.... которое определенно не является глобальным - person Mark Baker   schedule 22.11.2013