我很好奇一些php函数是如何在内部实现的,例如array_values()
。
因此,在eclipse中,我控制单击
函数名称,它将带我到一个包含函数原型定义但不包含内部源代码的页面。
是否有任何方法可以使用eclipse查看php函数的内部实现?(无论该函数是用php还是c编写的)
如果无法使用eclipse查看php源代码,则是否有任何良好的策略来搜索github上的php源代码?
我很好奇一些php函数是如何在内部实现的,例如array_values()
。
因此,在eclipse中,我控制单击
函数名称,它将带我到一个包含函数原型定义但不包含内部源代码的页面。
是否有任何方法可以使用eclipse查看php函数的内部实现?(无论该函数是用php还是c编写的)
如果无法使用eclipse查看php源代码,则是否有任何良好的策略来搜索github上的php源代码?
有没有办法使用Eclipse查看php函数的内部实现?
很遗憾,没有。
对于像我这样的初学者来说,什么是搜索PHP源代码的最佳策略,特别是在如此庞大的PHP源代码中感到非常迷失的情况下?
我假设你真正想要的是本机PHP函数及其输入参数和输出类型的参考。在这种情况下,官方文档可能是最好的方法。
一些(大多数?)流行的IDE,如Eclipse和Phpstorm,也可以为PHP的内置函数提供自动生成的phpdoc块,直接在您的IDE中提供该信息。
如果您对大多数php函数的实际C实现感兴趣,可以直接浏览GitHub存储库,或者将其克隆到计算机上并在IDE(Eclipse、CLion等)中打开它并使用IDE导航。
# Make a directory that will contain source files for opengrok to index
mkdir ~/opengrok
# Clone the PHP source into that directory
git clone https://github.com/php/php-src.git ~/opengrok/php-src
# Start the OpenGrok container
docker run -d -v ~/opengrok:/src -p8081:8080 opengrok/docker
array_values
的实现。
选择在array.c中的实现。
这就是array_values的C语言实现。
array_values
是一个内部函数,用 C 语言编写(https://github.com/php/php-src/blob/9993304da4559a936246e118cfefa1bcedaa84a5/ext/standard/array.c#L4021)。 - Kerkouch