激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 從PHP的源碼中深入了解stdClass類

從PHP的源碼中深入了解stdClass類

2020-06-23 13:40服務器之家 PHP教程

這篇文章主要介紹了從分析PHP的源碼角度深入了解stdClass類,并總結了stdClass類到底是是什么,需要的朋友可以參考下

在百度百科中,對于stdClass的定義如下:

復制代碼 代碼如下:

stdClass在PHP5才開始被流行。而stdClass也是zend的一個保留類。stdClass是PHP的一個基類,
所有的類幾乎都繼承這個類,所以任何時候都可以被new,可以讓這個變量成為一個object。同時,
這個基類又有一個特殊的地方,就是沒有方法。凡是用new stdClass()的變量,
都不可能會出現$a->test()這種方式的使用。PHP5的對象的獨特性,對象在任何地方被調用,
都是引用地址型的,所以相對消耗的資源會少一點。在其它頁面為它賦值時是直接修改,而不是引用一個拷貝。

 

以上的定義大多數都是正確的,但是一個致命性的診斷錯誤: stdClass是PHP的一個基類,所有的類幾乎都繼承這個類。 看一個簡單的例子:

復制代碼 代碼如下:


class EmptyClass {

 

}

$object = new EmptyClass();
if ($object instanceof stdClass) {
    echo 'yes';
}else{
    echo 'no';
}

 

執行代碼,輸出”no”,這個例子充分說明了stdClass類并不是所有類的基類。它僅僅是PHP的一個保留類,或者說一個類似于strlen函數這樣的一個角色。 我們從源碼的維度看看stdClass類的實現,它注冊的位置在 Zend/zend_buildin_functions.c文件中。如下:

 

復制代碼 代碼如下:


ZEND_MINIT_FUNCTION(core) { /* {{{ */
    zend_class_entry class_entry;

 

    /* 注冊stdClass 類 */
    INIT_CLASS_ENTRY(class_entry, "stdClass", NULL);
    zend_standard_class_def = zend_register_internal_class(&class_entry TSRMLS_CC);

    /* 注冊默認類,接口,如Exception類,SPL中的一些類等 */
    zend_register_default_classes(TSRMLS_C);   

    return SUCCESS;
}
/* }}} */

 

這是zend_builtin_module的模塊初始化函數,在PHP內核進行模塊初始化操作時會自動加載這個函數, 這樣,stdClass類的注冊操作也就會被執行了。從這段代碼可以看出,stdClass類是一個沒有成員變量也沒有成員方法的類。 它的所有的魔術方法,父類、接口等在初始化時都被設置成NULL。由于在PHP中對于一個類我們無法動態的添加方法, 所以這個類只能用來處理動態屬性,這也是我們一種常見的用法。

總結一下:

stdClass類是PHP的一個內部保留類,初始時沒有成員變量也沒成員方法,所有的魔術方法都被設置為NULL,可以使用其傳遞變量參數,但是沒有可以調用的方法。stdClass類可以被繼承,只是這樣做沒有什么意義。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 欧美成人毛片 | 男男羞羞视频网站国产 | 成人性生活视频在线观看 | 欧洲精品久久久 | 一级大片视频 | 亚洲精品 欧美 | 亚洲电影在线观看高清免费 | 成人免费一区 | 91精品国产一区二区三区四区在线 | 91国内精品久久久久免费影院 | 国产资源在线免费观看 | 最新久久免费视频 | 国产成人自拍av | 免费人成在线播放 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 一级黄色大片在线观看 | 91青青| 久久精品视频在线看99 | 久久免费视频在线 | 亚洲欧美日韩精品久久 | 欧洲怡红院 | 一级成人欧美一区在线观看 | 黄色免费视频在线 | av在线免费看片 | 92看片淫黄大片欧美看国产片 | 久久精品视频黄色 | 国产亚洲精品久久久久5区 男人天堂免费 | 欧美成a人片在线观看久 | 狼人狠狠干 | 精品久久久久久久久久久久久久久久久久久 | 中文字幕激情视频 | 欧美国产日韩在线观看成人 | 久久老司机精品视频 | 亚洲二区不卡 | 亚洲国产精品高潮呻吟久久 | 中国成人在线视频 | 日韩精品中文字幕一区 | 最新中文字幕日本 | 久久精品日韩一区 | 欧美精品38videos性欧美 | 深夜免费观看视频 |