【发布时间】:2012-03-27 14:49:54
【问题描述】:
我从事 PHP 开发已经很长时间了,并且我开始遇到该语言的一些限制。因此,话虽如此,我认为我的开发周期的下一步是转向 C++,并构建一些扩展!
当我浏览了一些标准的“Hello World”之类的教程时,大部分内容似乎都很有意义。我构建了一个相当不错的井字游戏应用程序,所以我认为是时候开始深入研究 PECL 并看看它是如何工作的。然而,我的发现让我大吃一惊。
谁能解释一下这样做的目的和原因:
PHP_FUNCTION(helloWorld)
{
RETURN_STRING("Hello World");
}
并非如此:
string helloWorld()
{
return "Hello World"
}
PHP_REGISTER_METHOD("helloWorld");
我并没有假装我比创造这种语言的人知道的更多,我也没有试图挑起任何麻烦。似乎(至少从初学者的角度来看)创建 PHP 扩展与编写 C++ 程序完全不同。除了一些基本的语法规则之外,它几乎是一种完全不同的语言。
任何帮助将不胜感激。只是一个试图成长的初学者:)
【问题讨论】:
-
猜测,PHP_FUNCTION 和 RETURN_STRING 是做“幕后”工作的宏。
-
php 将每一位数据包装在一大堆元数据中。它自己的函数,如 register_string(),为你处理所有这些。
-
我不想听起来居高临下,但是您有多少使用 C++ 编写实际程序或使用具有大量现有代码库的实际 C++ 程序的经验?
-
完全没有。我试图在我的帖子中概述这一点,但实际上我只花了一周左右的时间,这只是我试图理解的初步印象。
-
@syntaqx:这就是 php 插件的实现方式。它仍然是带有一堆包装器的 c++。您可能可以手动完成所有操作,但这些包装函数掩盖了很多“挥舞锤子”类型的忙碌工作。