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 に答える