一些php wamp/lamp软件包中包含了像php_amf、php_db和php_gd2等php扩展,我只需要激活扩展或者在默认情况下安装扩展即可。一般来说,我的问题是这些扩展与库有什么不同?具体来说,我想知道一个扩展是否可以转化为项目本身加载的库,以便无需像php扩展那样进行特殊安装即可调用该库。有时候在共享主机上,你没有足够的权限来安装新的扩展。
PHP扩展是一个C或C++程序,包装在Zend引擎周围,在PHP安装中提供PHP函数和类。
PHP库是使用本地PHP编写的程序,可以使用扩展来提供PHP程序内的函数和类,也可能不使用扩展。
虽然将一个PHP库转换为扩展是可能的,而且相对容易(假设您有足够的C++知识),但相反的过程可能会很繁琐,因为C++程序可能使用PHP中没有的函数和对象。
将PHP库转换为扩展更容易,因为显然PHP函数都可以以某种方式在C中使用,因为PHP是用C编写的。然而,相反并非总是如此。
扩展能转换成库吗?
不可以自动转换。扩展不是用PHP编写的,因此无法简单地转换。当然,可以编写执行等效操作的PHP脚本,但是与原始扩展相比,这样的脚本会明显较慢,因为与本地/编译语言相比,PHP在计算方面相对低效。