2012-03-21 3 views
1

Я попытался понять эту строку кода, но это не удалось.PHP - В чем смысл этого синтаксиса?

$ this-> запрос -> {само :: FLAG_SHOW_CONFIG} === 'истинный'

У меня нет ключевого слова для поиска такого синтаксиса.

Что это значит.

  1. Почему они имеют «===» вместо «==»?

  2. Каким образом они могут сделать $ this-> запрос -> {само :: FLAG_SHOW_CONFIG}, в то время, то FLAG_SHOW_CONFIG является полем $ это, она не принадлежит $ this-> Запрос

полный код

<?php 
    class Magentotutorial_Configviewer_Model_Observer { 
     const FLAG_SHOW_CONFIG = 'showConfig'; 
     const FLAG_SHOW_CONFIG_FORMAT = 'showConfigFormat';  

     private $request; 

     public function checkForConfigRequest($observer) {   
      $this->request = $observer->getEvent()->getData('front')->getRequest(); 
      if($this->request->{self::FLAG_SHOW_CONFIG} === 'true'){ 
       $this->setHeader(); 
       $this->outputConfig(); 
      } 
     } 
?> 

ответ

1

$this->request->{self::FLAG_SHOW_CONFIG} интерпретируется PHP как $this->request->showConfig. И === в основном проверяет равенство как по значению, так и по типу. Проверьте эту страницу, чтобы увидеть описание знаков тройного равенства. http://php.net/manual/en/language.operators.comparison.php

Также проверьте эту страницу http://php.net/manual/en/language.variables.variable.php, чтобы узнать о переменных переменных в PHP.

+0

Спасибо большое :) Я почти сумасшедший из-за такого синтаксиса – JAYKENZ

0

$this->request->{self::FLAG_SHOW_CONFIG} такой же, как:

$this->request->showConfig 
Смежные вопросы