0

我的经验水平:对 C 非常熟悉,对 PHP 很熟悉,对 Zend Engine 很陌生并且很沮丧(没有文档?)

我正在尝试编写我的第一个 PHP 扩展,我想知道以下是否可能。

说明我的目标的 PHP 代码:

class MyClass
{
    public function foo($bar)
    {
        (stuff that runs extremely slowly in PHP)
        return "result";
    }
}

$a = new MyClass();
echo "Watch how slow this is: ", $a->foo();

tell_my_custom_php_extension_to_replace_foo_with_my_reimplementation_of_foo_in_c("MyClass");

echo "Wow, now it's wonderfully fast! See: ", $a->foo();

另外,我知道我可以重写 foo 来调用扩展所公开的函数,但这对我来说并不有趣。我只是想知道上面的例子(PHP类不知道并且不与扩展合作)是否可行。

4

1 回答 1

1

runkit扩展做这种事情:http : //www.php.net/manual/en/function.runkit-method-redefine.php

它可以在http://pecl.php.net/package/runkit下载,但最近在 git://git.php.net/pecl/php/runkit.git 有很多变化

于 2013-05-11T09:03:09.090 回答