溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php怎么創(chuàng)建未定義類PHP對象

發(fā)布時間:2021-06-25 17:42:33 來源:億速云 閱讀:180 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“php怎么創(chuàng)建未定義類PHP對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php怎么創(chuàng)建未定義類PHP對象”吧!

在PHP中,如果沒有事先準備好類,需要創(chuàng)建一個未定義類的對象,我們可以采用下面三種方式:1、“new stdClass()”、“new class{}(object)”和“(object)[]”。下面將由小編來詳細介紹。

在PHP中,如果沒有事先準備好類,需要創(chuàng)建一個未定義類的對象,我們可以采用下面三種方式:

  • new stdClass()

  • new class{}

  • (object)[]

首先是stdClass,這個類是一個空的類模板,是PHP的內(nèi)部保留關(guān)鍵字及類名??梢园阉嘞癯墒荍ava中的Object基類,在Java中,所有類都天然繼承自O(shè)bject基類。而PHP中的這個stdClass則是完全的一個空的類模板。你自己新創(chuàng)建的類并不是它的子類。但是用這個類模板可以創(chuàng)建一個自己未定義類的對象。當然,這個對象內(nèi)部沒有任何東西。

 $a = new stdClass();
var_dump($a);

new class{}呢?做過一段時間開發(fā),接觸過前端js和其他動態(tài)語言的應(yīng)該能猜到,這個是匿名類。一般在參數(shù)對象中很常見。它創(chuàng)建出來的對象是可以帶屬性方法的。

 $b = new class{
    public $p = 1;
};
var_dump($b);

最后我們來看到的是使用數(shù)組強轉(zhuǎn)成對象的形式來生成一個對象。

 $c = (object)[
    'p' => 1
];
var_dump($c);

很明顯,數(shù)組強轉(zhuǎn)的形式生成的對象和第一種對象是一個類型的,而且它可以帶屬性也可以不帶。但是,它不能帶方法。

數(shù)組強轉(zhuǎn)方式生成的對象非常的直觀好理解。如果只是屬性對象的封裝,使用這種方式會更加地優(yōu)雅舒服。復雜的對象生成可以使用匿名類的方式進行生成。而一些僅需要占位的對象,可以使用stdClass的方法,當然用空數(shù)組的方式也很方便。

需要注意的是,數(shù)組強轉(zhuǎn)需要遵守類型轉(zhuǎn)換的規(guī)則。比如數(shù)字下標的問題。

在日常開發(fā)中,我們對于一些接口或者數(shù)據(jù)庫ORM框架的使用中會經(jīng)常用這些功能。比如一些ORM框架的插入、修改需要傳入的是只包含屬性的對象。這時候就可以使用上述的方法靈活地生成對象而不用完整的定義類模板了。

測試代碼:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php

到此,相信大家對“php怎么創(chuàng)建未定義類PHP對象”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI