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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    class CHTMLFormGenerator {
    
    	...
    
    	public $formName;
    	const formName = 'form';
    	
    	function GetFormName() {
    		if(isset($this) && $this -> formName)
    			return $this -> formName;
    		else
    			return self::formName;
    	}
    
    	...
    
    }

    Запостил: clauclauclau, 23 Января 2014

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

    • И оно работает? Фантастика!
      Ответить
      • Немного не в тему, но просто интересно знать, использует ли кто-нибудь (вообще слышал о ней?) Delphi for PHP?
        Ответить
        • Господи, а такое существует?
          Ответить
          • Да, у меня стояла. Визуальная среда, точь-в точь как паскальная делфи, только под php, правда, я не знаю, чего там можно навизуалить.
            Судя по стилю оформления, она не Борландовская, а скорее, CodeGear.
            Ответить
    • А мне нравится! Смущает только один пустячок: «При попытке вызова нестатических методов статически выводится предупреждение уровня E_STRICT».
      Ответить
      • Предупреждение... А в крестах за такое расстреливали...
        Ответить
        • Из сегфолта? :)
          Ответить
          • Не, задолго до этого, при компиляции.

            P.S. Хотя ((T*)0)->method() написать можно, и оно даже отработает, если не лезть к полям и виртуальным методам... И this внутри method() будет нулем...
            Ответить
        • 4 крестобляди?
          Ответить
    • class formName {
      	public $formName;	
      	const formName = 'formName';
      	function formName() {
      		if (isset($this) && $this->formName)
      			return $this->formName;
      		else
      			return formName::formName;
      	}
      }
      Ответить
      • isset($this) ? Сирьйозно?
        Ответить
        • А то! Добро пожаловать в наш клуб: http://ideone.com/RhfqZK
          Ответить
          • А, ну да, тогда надо обязательно добавить && $this instanceof get_class($this)
            Ответить
          • Лол блядь, даже питон проверяет, чтобы первым параметром был обьект нужного класса.
            Ответить
            • > даже питон
              У питона строгая типизация же, ему без этого никак.
              Ответить
              • Она у него динамическая, причем тут это? Или хуйзнаетчто можно привести к self, скажем, вызвав метод числа у строки? :)
                Ответить
                • Как причем? Вот эти вот проверки и не дают складывать числа со строками, вызывать методы строк у сокетов, читать байты из чисел и творить прочую хуйню. Поэтому питуизация питона считается строгой динамической (в отличие от нестрогой в php и js). Разве не так?
                  Ответить
                  • Методы вызывать не дает их отсутствие (утиная типизация). Складывать числа и строки не дает метод __add__() чисел и строк, т.е. все ручками. А вот попытка вызвать class.method(o), если o - не обьект class имхо пресекается самим фитоном.
                    Ответить
            • Но в этом примере даже не приведение типа. Здесь вызов метода класса без указания его экземпляра, т. е. как обычной функции.
              Ответить
              • Все, понял. Рнр не проверяет наличие первого аргумента, и код если он null считает что был вызван статический метод.
                Ответить

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