php.ini中Extension和zend_extension之间的区别是什么?

Ala*_*orm 37 php xdebug pecl php-internals

当我安装Xdebug时pecl,它将以下行添加到我的php.ini文件中.

extension="xdebug.so"
Run Code Online (Sandbox Code Playgroud)

以及我用过的所有东西.直到今天.

今天我在设置Xdebug以进行交互式调试时遇到了麻烦.直到我改变了上面的内容,我才能得到任何工作

zend_extension="/usr/local/lib/php/extensions/xdebug.so"
Run Code Online (Sandbox Code Playgroud)

(警告:我认为这是让我工作的原因,但我不是百分百肯定)

这引起了我的疑问.通过extension=vs. 加载扩展有什么区别zend_extension

Pra*_*n D 36

Zend_extentions属于那些构建到zend引擎本身的扩展.在zend引擎本身内置的PHP.该引擎解析,解释并执行php脚本.如果我们更改引擎,它将改变PHP的工作方式.

以下消息将描述php的extention和zend_extension之间的主要区别

这两种扩展类型共享很多东西.两种类型之间的区别主要在于它们注册到引擎中的钩子.请记住,尽管它非常罕见,但扩展可以同时是PHP扩展和Zend扩展.Xdebug就是一个很好的例子.

查找主模式的下图 在此输入图像描述

有关详细信息,请参阅此链接


Mil*_*dev 21

PHP语言的核心(更像解释器,因为语言只是一个规范)是Zend开发的名为"Zend Engine"的软件(解释器,字节码编译器).

每个与这个核心混淆的模块应该安装为"zend_extension".

然而,要解决您的问题,请忽略此解释尝试并查阅您正在配置的扩展的文档 - http://www.xdebug.org/docs/install.