PHP - Что означает этот синтаксис? - PullRequest
1 голос
/ 21 марта 2012

Я пытался понять эту строку кода, но она не удалась.

$ this-> request -> {self :: FLAG_SHOW_CONFIG} === 'true'

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

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

  1. Почему у них "===" вместо "=="?

  2. Почему они могут сделать запрос $ this->-> {self :: FLAG_SHOW_CONFIG}, тогда как FLAG_SHOW_CONFIG - это поле $ this, оно не принадлежит $ this-> request

Полный код

<?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();
            }
        }
?>

Ответы [ 2 ]

1 голос
/ 21 марта 2012

$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 голосов
/ 21 марта 2012

$this->request->{self::FLAG_SHOW_CONFIG} совпадает с:

$this->request->showConfig
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...