2010-06-24 24 views
0

PHP有Zend引擎.. Zend引擎提供的fopen .. PHP还提供的fopen ...Zend引擎和PHP ext文件夹

但是,当我们调用fopen,PHP的FOPEN被称为..我有三个问题这里

  1. /php -nn/ext文件夹的用途是什么。
  2. ext文件夹中的函数每次更改时都需要重新编译它们吗?
  3. 不要在ext文件夹(如果他们碰巧有相同的名称,Zend的功能)过骑了Zend函数功能..

回答

1

什么/ PHP的目的 - NN/ext文件夹

它包含PHP扩展,即构建在Zend引擎上的实际提供PHP函数和内置对象的东西。

ext文件夹中的函数每次更改都需要重新编译吗?

是的,如果你想改变反映在二进制文件。

不要在ext文件夹(如果他们碰巧有相同的名称,Zend的功能)过骑了Zend函数功能..

你错了,Zend引擎没有定义PHP函数fopen。实际上,Zend引擎不提供PHP功能。它可以独立编译并用于与PHP完全无关的内容。 Zend引擎实际上提供了一些PHP函数(声明为 ZEND_FUNCTION),请参阅zend_builtin_functions.cPHP_FUNCTION实际上是ZEND_FUNCTION的同义词,但依赖ZEND_FUNCTION来声明PHP函数是违反抽象的。

您可能会将PHP函数函数(在内部声明为PHP_FUNCTION(fopen))与其他一些名为fopen的C函数(如标准C库中的函数)混淆。


至于是否Zend公司提供了一个文件打开功能......我能找到的:

  • 一个true global这是一个指向zend.c一个开放的功能。这由zend_stream_open使用,在打开include文件时使用其调用层次结构。
  • 围绕标准C库的一个小包装器,用于表示全局的后退值。

我想象提供全局函数指针的原因是它可以代替例如TSRM或Phar扩展。

+1

ZE不提供用户级PHP功能。可以使用ZEND_FUNCTION()宏声明这些函数。Zend/zend_builtin_functions.c包含其中的一些,比如get_declared_classes(),func_num_args()等。 – 2010-06-24 18:40:26

+0

@Daniel你说得对,我会编辑答案。 – Artefacto 2010-06-24 19:18:18

+0

伙计..我din的意思是,zend提供的PHP函数..但不zend提供文件打开功能?? – 2010-06-25 01:53:23