可能重复:
调用不存在的方法时重定向到其他方法
我有一个代码,我正在检查它并获得了很棒的功能。
php 5.4.0/Kohana 3.0.3
正是字符串有问题:
$ticket = ORM::factory('ticket');
$this->template->errors = $ticket->validate()->errors('validate_ticket');
问题是 Model_Ticket 类及其所有父类不包含方法 validate(),但此方法返回有效值。这怎么可能?
下一个代码显示:
echo 'get_class($ticket)='; echo get_class($ticket); echo "\n";
echo "var_dump(method_exists(\$ticket,'validate'))="; var_dump(method_exists($ticket,'validate')); echo '\n';
echo "var_dump(method_exists('Model_Ticket','validate'))=";var_dump(method_exists('Model_Ticket','validate'));echo '\n'
echo 'get_class($ticket->validate())=';echo get_class($ticket->validate());
这是我们得到的结果:
get_class($ticket)=Model_Ticket
var_dump(method_exists($ticket,'validate'))=bool(false)
var_dump(method_exists('Model_Ticket','validate'))=bool(false)
get_class($ticket->validate())=Validate
get_class_methods($ticket) 还显示,$ticket 不包含方法 validate()...