Call non-static method staticly raise E_STRICT, but why call a static method instancely won't
| From: | reeze | Date: | Sun, 24 Apr 2011 04:07:11 +0000 |
| Subject: | Call non-static method staticly raise E_STRICT, but why call a static method instancely won't | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-51998@lists.php.net to get a copy of this message | ||
Hi,
I am not sure it's the right place to discuss this. someday I found I call a static method
_instancely_.
the method is just a helper method when reviewing my code. I know I do the wrong thing, but PHP
doesn't
complain about it. then I do some tests like below:
<?php
error_reporting(E_ALL ^ E_STRICT);
class A {
public function static staticFunc() {
echo "static";
}
public function instanceFunc() {
echo "instace";
}
}
A::instanceFunct(); // Strict Standards: Non-static method A::instanceFunc() ...
$a = new A();
$a->staticFunc(); // Just static no E_STRICT error raised
I know it's the wrong way to do like these, maybe there are some historical reasons to allow
these.
I just wonder why previous method call raise E_STRICT but later not.
Yes, something could be done doesn't means we should, but we could stop things like happened.
-----
http://reeze.cn