Teb*_*ebe 5 php apache static object
我有以下代码:
class A {
public function methodB()
{
// do something
return 1;
}
}
$a = A::methodB();
Run Code Online (Sandbox Code Playgroud)
它应该永远不会工作,它适用于该机器!它确实返回1.真的,我发誓我没有喝醉.
当然,如果我在我的机器或生产服务器上运行它将无法正常工作.因为你不能像静态那样调用非静态方法.应始终首先实例化类.
我很担心.想到今天,当我设置一个单独的工作机器来测试项目时,我再次获得了这个代码的环境.
事情变得更糟 - 我在团队中的开发人员仍然没有清楚地了解静态和非静态方法之间的差异.结果他们有代码在他们的机器上工作正常,但它在任何其他环境中失败.
为什么它有效?我希望这样的代码失败.它应该不起作用.
它运行的机器配置如下:
vagrant @ vagrant-ubuntu-trusty-32:/ var/www/apotheke $ php -v PHP 5.6.17-3 + deb.sury.org~trusty + 1(cli)Copyright(c)1997-2015 PHP Group Zend引擎v2.6.0,版权所有(c)1998-2015 Zend Technologies与Zend OPcache v7.0.6-dev,版权所有(c)1999-2015,作者:Zend Technologies
真的,我觉得很蠢.我错过了什么吗?