Php 这是什么代码? 请考虑下面的代码片段:

Php 这是什么代码? 请考虑下面的代码片段:,php,c,api,Php,C,Api,来自php-5.3.1/ext/session/session.c: PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS) … gettimeofday(&tv, NULL); … /* maximum 15+19+19+10 bytes */ spprintf(&buf, 0, "%.15s%ld%ld%0.8F", remote_addr ? remote_addr : "", tv.tv_sec, (long int

来自php-5.3.1/ext/session/session.c:

PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS)
…
gettimeofday(&tv, NULL);
…
/* maximum 15+19+19+10 bytes */
spprintf(&buf, 0, "%.15s%ld%ld%0.8F", remote_addr ? 
remote_addr : "", tv.tv_sec, (long int)tv.tv_usec, 
php_combined_lcg(TSRMLS_C) * 10);
…
return buf;
}

我在网上找到的。但我不明白这是什么代码。我猜这是C++中PHP函数的实现。如果是,请解释PHP如何调用C++ C++函数?

< P>令人震惊的事实是PHP是在C.编写的,你在看PHP本身的来源,或者需要进一步解释这个问题。

< P>它不是C++代码,它是纯C。PHP库可以调用C函数,就像在C中实现的任何其他库一样。代码片段生成一个唯一的会话ID,由客户端地址、当前时间和来自某个线性同余生成器的伪随机数组成。

我猜您是通过讲座得到这段代码的吧?伟大的谈话顺便说一句:-

关于代码片段,它是C语言,是PHP代码的一部分。这个函数处理PHP会话ID的生成。你已经在我上面提到的讲座中解释了整个函数逻辑,以防你没有看到它


另一方面,PHP不调用C函数,而是调用PHP库函数,因此大多数函数都是用C编写并通过PHP公开的。另一方面,php_session_create_id没有向php公开等效的代码,因为当您使用启动会话时,php会在内部使用该代码。

php被解释并最终作为C代码运行。php被解释并最终作为机器代码运行。解释器是用C写的:-克里斯:你错了,看:php是用C写的是什么意思?php的每个函数在C中是否使用相同的名称实现,当您调用一个php函数时,C函数本身是否被调用?我能说PHP是用C编写的库吗?当我编写PHP时,实际上我是用PHP库编写C的吗?@Narek PHP解释器是一个用C编写的程序。你可能想用谷歌解释器来理解它是什么。@Narek:看不。当你编写PHP时,你的代码是由PHP解释器解释的。这个解释器恰好是用另一种语言C编写的,但是哪种语言对你来说并不重要。PHP解释器甚至可以用Java或汇编语言编写。许多PHP函数名类似于C标准库函数名是一种巧合。事实上,有一个PHP实现是用Java编写的: