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

标签 php function parentheses

我花了 3 个小时想知道为什么我无法开始 session ,然后意识到我使用了:

session_start;

我应该在什么时候使用:

session_start();

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

也许那时,我想,这是一种将函数与变量区分开来的懒惰方法 - 但后来想起它不能是因为变量需要 $

谁能告诉我为什么需要括号,以及为什么不使用括号时不报错?

最佳答案

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

Notice: Use of undefined constant session_start - assumed 'session_start' in /t.php on line 5

函数总是需要括号,否则(如您所见)您无法区分函数和常量。因为代码应该被编写成人们阅读它时可以理解的方式,所以不允许读者查看它是常量调用还是函数调用会使它更难阅读和调试。

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

$myArray[myString] = 25;

关于php - 为什么没有参数的 PHP 函数需要括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833502/

相关文章:

javascript - 如何在 php 端回显来自 javascript 的发布数据以进行开发?

php - new Class() 和 ReflectionClass::newInstance() 的区别?

php - 如何将多个 url/path 合并到多维数组中?

c++ - typedef 函数不是类型名?

java - 为什么这段代码在包装在通用函数中时不起作用?

Java - 检查带有附加 '&' 字符的匹配括号

PHP 上传设置、最大文件上传和 block

swift - 如何从 ViewController 或其他地方调用或触发 AppDelegate 中的通知函数?

Bash 命令组 : Why do curly braces require a semicolon?

ruby - Ruby & Rails 中的大括号 : [Brackets],(圆括号)和 {Curlies}