Strict Standards на PHP 5.4

AmdY

Пью пиво
Команда форума
grigori
смена сигнатуры, это когда есть интерфейс, но тогда вываливается фатал. а вот если метод просто определён, то в наследниках можно менятьи сигнатуру, никакой офибки в 5.4 не валится.
 

Lebnik

Новичок
у меня тоже возникла такая ошибка на одном из проектов, и вот в чем она заключалась, был класс:
PHP:
class jet_controller {
	//... 
	function __construct() {
		//... 		
	}
	public function __begin($name = "default",$method = "__run"){ }
	//... 
}
который наследовался так:
PHP:
class controller_base extends jet_controller {
    //...
    function __begin(){
        //...       
    }
    //... 
}
и возникала ошибка:
Strict Standards: Declaration of controller_base::__begin() should be compatible with jet_controller::__begin($name = 'default', $method = '__run') in vsetv/application/controller/base.php on line 2
а решением ошибки оказалось добавление параметров в наследуемом классе:
PHP:
class controller_base extends jet_controller {
    //...
    function __begin($name = "default",$method = "__run"){
        //...       
    }
    //... 
}
в общем все как написали в третьем комментарии :) правда там немного мудрено написано :)
 

craz

Нестандартное звание
а ниче что пых оставляет за собой право сделать из любого метода который начинается с __ - магический метод, при этом в любом обновлении?
 
Сверху