ФорумПрограммированиеPHP для идиотов → PHP 5.3 что нового и неприятного нам дает

PHP 5.3 что нового и неприятного нам дает

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 мая 2010 г. 0:21

    в общем ситуация в том, что я перевел сервер и девелопер машину на пхп5.3, и появились некоторые ошибки, неприятные, например

    Fatal error: Method xxxx::__tostring() cannot take arguments in /xxxx.class.php  on line 260


    забавно, ага :)

    я подчерпнул эту идею из магенты(там же вроде toString, toXML и тп?! поправь нрг если я неправ) и видимо зря :)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 мая 2010 г. 0:24, спустя 2 минуты 6 секунд

    в __toString не должно быть аргументов. Это нормально. Ничего неприятного не вижу в этом
    Спустя 43 сек.
    class A
    {
     public function __toString($var1) {} // хуйня
     public function __toString() {} // Ъ
    }
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 мая 2010 г. 0:27, спустя 3 минуты 41 секунду

    Абырвалг, неприятно - переписывать готовый проект, а топик я создал чтобы предупредить :)
    Спустя 63 сек.
    Абырвалг, в общем то я за то, чтобы это был не фатал еррор, фатал это может быть когда ТРЕБУЮТСЯ аргументы, а если там есть по-умолчанию параметры? какого хуя то это фатал? вот с этим я НЕСОГЛАСЕН, валится даже пр дефолт значениях
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 мая 2010 г. 0:30, спустя 2 минуты 24 секунды

    ну вообще да, переписывать и правда неприятно. Я было подумал, что тебе не нравится отсутствие возможности передать аргумент в [var]__toString[/var].

    Я б присвоил этому Deprecated или Warning. Но не фаталл эррор.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 мая 2010 г. 0:33, спустя 3 минуты 50 секунд

    Абырвалг, Я было подумал, что тебе не нравится отсутствие возможности передать аргумент в __toString
    думаю что передать то можно, это же пых, а вот явно прописать в классе этого нельзя, пусть даже с дефолт значением :(

    пых перерождается в очередное гавно :)

    пошел на готу попишу :-D

    и еще болшой минус - нет имагик модуля в дебиане … еще не сделали, это ваще соснул хуй по полной …
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 мая 2010 г. 11:43, спустя 11 часов 9 минут 27 секунд

    я всегда думал, что __toString() это маджик метод, как и __get() …. Поэтому какие то вещи, типа передач параметров с ним делать не рекомендуется. Так же как и не рекомендуется заводить вообще в приложении какие то методы с двумя подчеркиваниями вначале названия…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 мая 2010 г. 12:08, спустя 25 минут 4 секунды

    kostyl, ключевое слово "не рекомендуется" :)
    Сапожник без сапог
  • namit

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 13 мая 2010 г. 14:41, спустя 2 часа 33 минуты 26 секунд

    так этот метод же и вызывать то не надо, его надо использовать как echo(экземпляр_класса)
    чтобы возвращало адекватную строку с чем то, а не Object
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 мая 2010 г. 20:26, спустя 5 часов 44 минуты 26 секунд

    да, надо писать методы toString() или toXML() без подчеркиваний, или на крайняк с одним, а если нужен функционал __toString() - то им декорировать обычный toString().
    или делать фабрику
    public function __toString()
    {
    return ($this->_convertAdapter == 'string') ? $this->toString() : $this->toXML();
    }


    пофлудил ))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 мая 2010 г. 21:01, спустя 34 минуты 53 секунды

    пофлудил ))
    это точно
    Сапожник без сапог
  • Z-MODe

    Сообщения: 199 Репутация: N Группа: Кто попало

    Spritz 15 мая 2010 г. 0:08, спустя 1 день 3 часа 7 минут

    Понравилось $class::get();
    Ибо
    надоело call_user_func
    Проблематично с хостингом пока правда.. пришлось вдс покупать под новый проект(
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 15 мая 2010 г. 6:16, спустя 6 часов 7 минут 50 секунд

    непонравилось, что тало еще труднее писать скрипты, работающие везде. стабильности нет
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 15 мая 2010 г. 12:24, спустя 6 часов 7 минут 39 секунд

    да херня, поставил 5.3.2 и один проект не пашет. Еще не смотрел, но судя по логу вот тут
    if (FALSE === call_user_func_array(array($this->_Stmts[$StmtIndex], 'bind_param'), $BindArray)) {
    ошибка "Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given"
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 мая 2010 г. 12:28, спустя 4 минуты 36 секунд

    kostyl, приветствую тебя в мире пхп 5.3 :)
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 15 мая 2010 г. 12:45, спустя 16 минут 33 секунды

    и вот еще Fatal error: Exception thrown without a stack frame in Unknown on line 0. Пиздец.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!