php - php.ini 中的 Extension 和 zend_extension 有什么区别?

标签 php xdebug pecl php-internals

当我通过 pecl 安装 Xdebug 时,它在我的 php.ini 文件中添加了以下行。

extension="xdebug.so"

我使用的一切都有效。直到今天。

今天我在为交互式调试设置 Xdebug 时遇到了问题。在将上面的内容更改为

之前,我什么都做不了
zend_extension="/usr/local/lib/php/extensions/xdebug.so"

(注意:我认为这就是我工作的原因,但我不是 100% 确定)

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

最佳答案

Zend_extentions 是内置于 Zend 引擎本身的扩展。引擎解析、解释和执行 PHP 脚本。更改引擎会改变 PHP 的工作方式。

包含的图表将描述扩展和 zend_extension 之间的主要区别。

这两种类型的扩展共享许多功能。两种类型的区别主要在于它们注册到引擎中的钩子(Hook)。尽管它非常不常见,但扩展既可以是 PHP 扩展,也可以是 Zend 扩展。 Xdebug 就是一个很好的例子。

在下图中查找主架构 Comparison of extensions and zend_extensions

For more details refer to this link

关于php - php.ini 中的 Extension 和 zend_extension 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758014/

相关文章:

php - 使用 WAMP 在 Windows 上安装 PHP xdiff

php - html 新手,在我的网站上遇到错误

php - 使用 XDebug 和 Netbeans 调试 PHP 项目崩溃

php - 使用 NetBeans 调试 PHP?

PHP 扩展安装 - phpize 错误 - 在 NGINX/PHP-FPM 上

PHP 8.1 与 Xdebug - 在平面命名空间中找不到符号 '_zend_get_parameters_array_ex'

php - (htaccess) 如何使文件只能由主机服务器访问并防止直接访问?

php - 禁用部分页面php的警告和通知

php - MySQL 准备语句与普通查询。 yield 和损失

php - 为什么不是对象的所有属性都显示在调试器的变量部分中