70-クラスのプロトタイプzend_class_entry

806 ワード

70-クラスのプロトタイプzend_class_entry
zend_class_entryはカーネルで定義された構造体であり、カーネルがPHP言語のクラスとオブジェクトを実現する非常に基礎的で重要な構造タイプである.彼は私たちが定義したクラスの原型に相当します.
myclassという名前のクラスを手に入れたい場合はどうすればいいですか?まずzend_を定義しますclass_entry変数を設定し、名前を設定してruntimeに登録します.
zend_class_entry *myclass_ce;


static zend_function_entry myclass_method[] = {
    { NULL, NULL, NULL }
};

ZEND_MINIT_FUNCTION(sample3)
{
    zend_class_entry ce;

    //"myclass"       。
    INIT_CLASS_ENTRY(ce, "myclass",myclass_method);
    myclass_ce = zend_register_internal_class(&ce TSRMLS_CC);
    return SUCCESS;
}

これでクラスmyclassを定義し、PHP言語で正常に使用できます.たとえば、次のようにします.
<?php
$obj = new myclass();
?>

myclassも定義されていますCeポインタ、彼は何に使いますか.インスタンスを生成するなど、拡張でこのクラスを操作すると、ファイルを開く操作ハンドルに似ています.