为什么没有参数的PHP函数需要括号?

Mar*_*son 3 php function parentheses

我只花了3个小时想知道为什么我不能开始一个会话,然后意识到我用过:

session_start;
Run Code Online (Sandbox Code Playgroud)

当我应该使用时:

session_start();
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误消息!

也许那时候,我想,这是一种将函数与变量区分开来的懒惰方式 - 但后来记得它不能像变量那样需要$

任何人都可以告诉我为什么需要括号,以及为什么不使用它们时没有错误?

Yac*_*oby 9

我收到通知(已设置error_reporting E_ALL):

注意:使用未定义的常量session_start - 在第5行的/t.php中假定为'session_start'

函数总是需要括号(如你所见)你无法分辨函数和常量之间的区别.因为代码应该被编写,所以人们可以理解它,不允许读者看它是一个常量还是函数调用使得它更难以阅读和调试.

我认为这是一个通知而不是错误错误,因为向后兼容性,一些旧的代码倾向于使用不带引号的字符串访问数组,如果没有该名称的常量,PHP会将其视为带引号的字符串.

$myArray[myString] = 25;
Run Code Online (Sandbox Code Playgroud)