Php 为什么不是';这在某些装置上不起作用吗?(Dispatcher::Instance())->;someFunction();
我经常使用类似于Php 为什么不是';这在某些装置上不起作用吗?(Dispatcher::Instance())->;someFunction();,php,Php,我经常使用类似于(Dispatcher::Instance())->someFunction()的东西“实例化时的类成员访问权限” 为了回答您的问题,抛出此错误与此功能在php>=5.4之前不存在有关,因此需要关闭变量/实例化作为定义 我建议您在做出任何决定之前,先听取以下建议: 一般来说,当使用静态方法时,应该使用静态方法 这两个问题都与任何未传入的状态无关 作为对它的论证,它更多地与抽象的概念有关 涉及的类,而不是一个具体的实例。那个 也就是说,功能与事物的概念有关,而不是与事物本身有关
(Dispatcher::Instance())->someFunction()的东西如果我只需要一个对象的函数一次,那么我就不必“浪费”一个新变量
事实证明,在某些PHP(PHP5?)安装中止时,这似乎不起作用:
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';'
我知道,我可以通过使用变量来规避这个问题,但我想知道为什么会出现错误。在发行说明中找不到任何内容。我也不知道该搜索什么。有人能帮忙吗?这称为“实例化时的类成员访问”,包含在PHP v5.4.0版本中。()
它允许实例化示例中显示的类(无需将其分配给变量):
理想情况下,在堆栈交换网络中的任何地方,调用这些方法似乎更有效
等等。只需搜索->“实例化时的类成员访问权限”
为了回答您的问题,抛出此错误与此功能在php>=5.4
之前不存在有关,因此需要关闭变量/实例化代码>作为定义
我建议您在做出任何决定之前,先听取以下建议:
一般来说,当使用静态方法时,应该使用静态方法
这两个问题都与任何未传入的状态无关
作为对它的论证,它更多地与抽象的概念有关
涉及的类,而不是一个具体的实例。那个
也就是说,功能与事物的概念有关,而不是与事物本身有关
事情本身
在这种情况下,您是否可以不删除()
而只执行Dispatcher::instance()->someFunction()代码>?我可以看出,如果你在做(new Instance())->someMethod()
,那么你需要()
包装。学到了一些新东西。看这里,这似乎是正确的方向。在我的服务器上使用PHP5.5.9仍然会失败,但是我现在知道了应该做什么。谢谢你。@christian,真奇怪!你已经确认了你的版本?
(Dispatcher::Instance())->someFunction();