我正在浏览php-src/Zend/zend_API.c,但在任何地方都找不到PHP 中该函数的源代码strlen()。搜索代码库并没有真正的帮助,因为到处都是 libc strlen。谷歌搜索也没有太大帮助。
我尝试使用Vulcan Logic Dumper扩展来检查引擎盖下发生的事情。
我尝试了以下代码作为测试:
<?php
strlen("foo"); strpos("foo", "f");
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
寻找切入点
来自位置的分支分析:0
发现 1 次跳跃。(代码 = 62)位置 1 = -2
文件名:/tmp/test.php
函数名:(空)
操作数:7
编译变量:无
行 #* EIO op fetch ext 返回操作数
-------------------------------------------------- ---------------------
3 0 E > 回声 3
4 1 INIT_FCALL 'strpos'
2 SEND_VAL '富'
3 SEND_VAL 'o'
4 DO_CALL $0
5 回声 $0
6 > 返回 1
注意如何strpos()显示为函数调用,而不是strlen(). 所以我尝试了这个(顺便说一下,这是在 PHP 7.4 上 …