PHP擴充套件中定義乙個類

2022-02-01 11:50:42 字數 879 閱讀 3212

類的結構體定義:

struct _zend_class_entry 

};zend_minit_function(sample3)

通過展開巨集,我發現,在執行完init_class_entry後,其實zend_class_entry結構,只初始化了三個成員,name,name_length,builtin_functions 

其中builtin_functions指向自己定義的類的方法陣列。

註冊類的最後一步:

zend_api zend_class_entry *zend_register_internal_class(zend_class_entry *orig_class_entry tsrmls_dc) /*

static zend_class_entry *do_register_internal_class(zend_class_entry *orig_class_entry, zend_uint ce_flags tsrmls_dc) /*

zend_str_tolower_copy(lowercase_name, orig_class_entry->name, class_entry->name_length);

zend_hash_update(cg(class_table), lowercase_name, class_entry->name_length+1, &class_entry, sizeof(zend_class_entry *), null); /* 最後,將類新增到runtime 的全域性class_table這個hashtable中,這裡將類名轉成lowercase的了,所以類名不區分大小寫 */

free(lowercase_name);

return class_entry;

到這裡,也就完成類的註冊了...

php定義乙個學生類 PHP 中的類 什麼叫類

在闡述類的概念之前我們來先說說物件導向程式設計的概念 物件導向的程式設計 object oriented programming,簡記為oop 立意於建立軟體重用 具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下程式設計的優勝者。它通過給程式中加入擴充套件語句,把函式 封裝 進程式設計所必...

php定義乙個學生類 PHP中的類 什麼叫類

在闡述類的概念之前我們來先說說物件導向程式設計的概念 物件導向的程式設計 object oriented programming,簡記為oop 立意於建立軟體重用 具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下程式設計的優勝者。它通過給程式中加入擴充套件語句,把函式 封裝 進程式設計所必...

用擴充套件開發乙個PHP類

原文 假設我們要用php擴充套件實 現乙個類person,它有乙個private的成員變數 name和兩個public的例項方法getname 和setname 可以用 php 表示如下 1 2345 6789 1011 12classperson publicfunctionsetname nam...