1. PHP / Говнокод #12493

    +53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /**
    	 * Магический геттер
    	 * 
    	 * @param string $name
    	 * @return mixed 
    	 */
    	public function __get($name)
    	{
    		if ($name == $this->fileName)
    			return $this->fileName;
    	}

    Magic is here

    Запостил: travka, 29 Января 2013

    Комментарии (15) RSS

    • Угадайка!
      Ответить
      • Т.е. геттер вернет значение fileName только если у него спросить поле с именем, совпадающим с этим значением?
        УГадайка, однако...
        Ответить
        • Не согласен с УГадайкой. По-моему это всё-ж ВГадайка. Во всяком случае не доводилось пока такого встречать, поэтому весело. И да, я украинец. :)
          Ответить
        • Самое забавное, что параметром туда можно передать, скажем, true. И он таки вернёт параметр. ЕМНИП, это вполне сработает в ПХП.
          Ответить
          • Пых в упор не помню, но как передать геттеру булево, если он принимает имя свойства, к какому обратились?:)
            Ответить
            • Тоже пых не помню, но, видимо, вот так: $obj->__get(true)
              Ответить
              • И правда работает, думал "магические" методы как методы не доступны, а если и доступны - приводят аргументы к требуемому типу.
                Ответить
                • Магия PHP.
                  Был, кажется, ещё какой-то способ подёргать за такие методы, навскидку не скажу. Но как обычно, немного манипуляций с типизацией и дело в шляпе.
                  Погорячился слегка. Перепутал с чем-то другим.
                  Ответить
    • магия? шарлатаны!
      Ответить
    • Я так и представил себе эту проверку...
      if ($obj->{'Z:\\www\\localhost\\tmp\\а вот такое вот свойство )).txt'}) ...
      Ответить
    • Кстати, а что функции в PHP возвращают по умолчанию, если опустить return? false?
      Ответить

    Добавить комментарий