我正在挖掘PHP(使用PHPStorm)来弄清楚异常是如何工作的,并且我一直在运行一个有趣的情况,其中函数有空块。
例如,在PHP Runtime/Core/Core.php
中,error_reporting
函数的定义如下:
function error_reporting ($level = null) {}
并不是唯一的。这些文件的顶部是这样的(忽略所有文档注释):
<?php
// Start of Core v.5.3.6-13ubuntu3.2
function zend_version () {}
function func_num_args () {}
function func_get_arg ($arg_num) {}
function func_get_args () {}
function strlen ($string) {}
为什么括号都是空的?通过查看其他核心文件,我看到了很多函数定义,但没有实际的代码。一切都在哪里?
答案 0 :(得分:4)
您正在查看的“核心”文件随PHPStorm一起提供,以支持自动完成。它们实际上并没有被PHP解释器使用。这些函数实际上都是在PHP解释器中以本机C代码实现的。
例如,error_reporting
的真正定义是Zend/zend_builtin_functions.c
。除非你非常熟悉PHP内部,否则它不太可能告诉你。