3

在为 php (5.3) 编写扩展时,我想访问zend_class_entry静态方法上的指针。

在非静态方法上,我可以像这样使用getThis()宏和宏内Z_OBJCE_P

zend_class_entry ce* = Z_OBJCE_P(getThis());

现在的问题:在静态方法上,getThis()宏返回一个null指针,所以我不能使用Z_OBJCE_P宏。

有没有人为我提供zend_class_entry从静态方法访问的解决方案?

4

1 回答 1

3

这真的很有趣:在静态方法上,您可以像这样访问范围

zend_class_entry* ce = 0L;
if (EG(called_scope)) {
    ce = EG(called_scope);
} else if (!EG(scope))  {
    ce = EG(scope);
}

EG 宏访问许多全局和上下文特定变量,以及调用范围,静态方法的调用类。

于 2010-12-23T14:17:03.080 回答