"PHP" / Говнокод #12659 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
class Step {
  public function xxx($arg1, $arg2 = NULL) {

  };
}

class FirstStep extends Step {
  public function xxx($arg3, $arg1 = NULL, $arg2 = NULL) {

  };
}

В очередной раз подтверждает что пхп - гамно!
А автору кода вообще линейкой по пальцам, куда, как, зачем менять сигнатуру да и еще не правильно!!!
И это в проэкте каторый стоит 15000Евро

Запостил: v_anonym v_anonym, (Updated )

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

  • Это не PHP говно, а принцип "Duck Typing". Он во многих языках с динамической типизацией встречается, например в Python то же самое:
    >>> class A:
    ...     def f(self, a1, a2 = None):
    ...         print a1, a2
    ... 
    >>> class B:
    ...     def f(self, a1, a2 = None, a3 = None):
    ...         print a1, a2, a3
    ... 
    >>> 
    >>> b = B()
    >>> b.f(1, 2)
    1 2 None
    Ответить
  • Автор по ходу сам тупит, ну изменил он базовый метод родительского класса для целей знакомых только ему, вопрос и че??? в чем гомно
    Ответить
  • А вот так? Это в 5.4. В 5.3 все тихо в обоих случаях.
    abstract class Foo {
    	abstract public function __construct();
    }
    class Bar extends Foo {
    	public function __construct($arg){} //Fatal error, но если убрать $arg, то интерпритатор считает что все нормально
    }
    class ololo extends Bar{
    	public function __construct($arg){}
    }

    Логика?
    Ответить
  • Сам недавно наступил на эти грабли. Существует уровень ошибок E_STRICT который ниже E_NOTICE и он и бросает ошибку. В 5.4 его включили в E_NOTICE, а в 5.3 нет. По поводу того , что php и логика это несовместимые вещи, ты вообще сам на чем пишешь? Везде все красиво кроме php или как?
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8