- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Eclipse 和 CDT 开发 PHP 扩展,但扩展代码被报告为充满语法错误和警告。我通过告诉 CDT 查找 PHP include
设法摆脱了其中的一部分。目录和 main
PHP源码目录,解决了所有的include,但是还是有很多问题。
具体来说,我在哪里可以找到 zval
的定义? , SUCCESS
, FAILURE
, STANDARD_MODULE_PROPERTIES
, zend_module_entry
, zend_function_entry
和 zend_parse_parameters
?如何让 CDT 不标记 <module name>
, <module name>_functions
和 return_value
作为不可解析的符号?
有没有更好的方法使用 IDE 开发 PHP 扩展?
最佳答案
在哪里可以找到:
typedef struct _zval_struct zval; : ./Zend/zend.h
struct _zval_struct { : ./Zend/zend.h
SUCCESS : ./Zend/zend.h
FAILURE : ./Zend/zend.h
STANDARD_MODULE_PROPERTIES : ./Zend/zend_modules.h
typedef struct _zend_module_entry zend_module_entry; : ./Zend/zend_modules.h
struct _zend_module_entry { : : ./Zend/zend_modules.h
typedef struct _zend_function_entry {
…
} zend_function_entry; : ./Zend/zend_API.h
zend_parse_parameters( : ./Zend/zend_API.c
如果你想像那样查看 PHP 源代码,我建议你结合使用 Vim 和 cscope
。然后你所要做的就是将标记放在 zval
上,输入两个键,它会跳转到定义。
通过快速谷歌搜索,Eclipse 似乎也有一些 cscope 支持等。 搜索工作区
?我猜这需要您将 PHP 源代码加载到工作区中。
关于 CDT 我不知道。从未使用过。
编辑:
出于好奇和需要了解 CDT 而看了一下。
现在我可以说 zend_parse_param
CtrlSpace 并自动完成。或者 zend_parse_parameters(
CtrlSpace。
或者选择Search
-> C/C++...
然后选择“Definitions”,文本“zval” -> search and get definitions.
或输入 zva
CtrlSpace 并得到 zval
等
您也可以在 Project Explorer
中右键单击 PHP 源,然后选择 Exclude from build
等。
关于c - zval 之类的东西在哪里定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10268750/
我正在尝试使用 Eclipse 和 CDT 开发 PHP 扩展,但扩展代码被报告为充满语法错误和警告。我通过告诉 CDT 查找 PHP include 设法摆脱了其中的一部分。目录和 main PHP
我试图在我的扩展中创建一个新函数,它接受一个 array 作为参数,向 that 数组的相同实例添加一个条目并再次返回该实例。 到目前为止,这是代码: PHP_FUNCTION(make_array)
我正在转储一个在 PHP 版本 7.3.5 上运行的 zval 容器(opcache 已激活并且 PHP 已启用线程安全),遵循此给定代码:
我有: PHP_METHOD(Car, cls_ref) { Car *car; //Car2 *obj11; Car2 *car2; zval* obj11;
我正在读这个:http://www.dereleased.com/2011/04/27/the-importance-of-zvals-and-circular-references/ 还有一个例子让
我想将 Zval 转换为 char*。我如何在我的 php 扩展中做到这一点? 最佳答案 如果 zval 代表一个字符串,你可以使用 Z_STRVAL(或者 Z_STRVAL_P/Z_STRVAL_P
你能给我推荐一些实际的例子来说明如何使用 zval 容器吗?我知道的唯一相关函数是 debug_zval_dump,但我从未真正使用过它。 编辑: 我想,通过跟踪 zval 容器,我可以了解如何优化代
最近在查阅 PHP7 垃圾回收的资料的时候,网上的一些代码示例在本地环境下运行时出现了不同的结果,使我一度非常迷惑。 仔细一想不难发现问题所在:这些文章大多是 PHP5.x 时代的,而 PHP7 发
我正在研究 PHP 中内存管理的基础知识,我发现它真的很有趣。不幸的是,内存管理的内部结构似乎根据 PHP 版本发生了变化,所以我并不总是理解 xdebug_debug_zval 返回的结果。 ,与解
如果 zval 是一个可调用对象,我如何在我的扩展 C 代码中运行它? 或者如何将 zval 转换为 zend_fcall_info 最佳答案 搜索 zend_is_callable 并深入了解 ph
如何释放使用以下代码创建的变量? zval *zval_ = nullptr; MAKE_STD_ZVAL(zval_); ZVAL_NULL(zval_); 最佳答案 PHP 具有垃圾回收内存管理。
我正在为我的 c++ 库编写一个 php 扩展,它的定义如下: bool getPids(map pidsMap, vector ids); 现在,我正在为上述功能编写一个 php 包装器。 ZEND
我是一名优秀的程序员,十分优秀!