thinkphp中m方法返回值是什么

thinkphp中,m方法的返回值是一個(gè)Model對(duì)象;m方法可以理解為“$m=new Model(“user”)”的縮寫(xiě),調(diào)用格式為“M(‘[基礎(chǔ)模型名:]模型名’,’數(shù)據(jù)表前綴’,’數(shù)據(jù)庫(kù)連接信息’)”,作用就是實(shí)例化一個(gè)基礎(chǔ)模型類(lèi)。

thinkphp中m方法返回值是什么

本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。

thinkphp中m方法返回值是什么

M方法可以認(rèn)為是 $m=new Model(“user”)的縮寫(xiě),即M()返回的是一個(gè)Model對(duì)象

M方法用于實(shí)例化一個(gè)基礎(chǔ)模型類(lèi),

M方法的調(diào)用格式:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

M('[基礎(chǔ)模型名:]模型名','數(shù)據(jù)表前綴','數(shù)據(jù)庫(kù)連接信息')

M方法具體有哪些用法:

1、實(shí)例化基礎(chǔ)模型(Model) 類(lèi)

在沒(méi)有定義任何模型的時(shí)候,我們可以使用下面的方法實(shí)例化一個(gè)模型類(lèi)來(lái)進(jìn)行操作:

//實(shí)例化User模型 $User?=?M('User'); //執(zhí)行其他的數(shù)據(jù)操作 $User->select();

這種方法最簡(jiǎn)單高效,因?yàn)椴恍枰x任何的模型類(lèi),所以支持跨項(xiàng)目調(diào)用。缺點(diǎn)也是因?yàn)闆](méi)有自定義的模型類(lèi),因此無(wú)法寫(xiě)入相關(guān)的業(yè)務(wù)邏輯,只能完成基本的CURD操作。

$User?=?M('User');

其實(shí)等效于:

$User?=?new?Model('User');

表示操作think_user表。M方法和D方法一樣也有單例功能,多次調(diào)用并不會(huì)重復(fù)實(shí)例化。M方法的模型名參數(shù)在轉(zhuǎn)換成數(shù)據(jù)表的時(shí)候會(huì)自動(dòng)轉(zhuǎn)換成小寫(xiě),也就是說(shuō)ThinkPHP的數(shù)據(jù)表命名規(guī)范是全小寫(xiě)的格式。

2、實(shí)例化其他公共模型類(lèi)

第一種方式實(shí)例化因?yàn)闆](méi)有模型類(lèi)的定義,因此很難封裝一些額外的邏輯方法,不過(guò)大多數(shù)情況下,也許只是需要擴(kuò)展一些通用的邏輯,那么就可以嘗試下面一種方法。

$User?=?M('CommonModel:User');

改用法其實(shí)等效于:

$User?=?new?CommonModel('User');

因?yàn)橄到y(tǒng)的模型類(lèi)都能夠自動(dòng)加載,因此我們不需要在實(shí)例化之前手動(dòng)進(jìn)行類(lèi)庫(kù)導(dǎo)入操作。模型類(lèi)CommonModel必須繼承Model。我們可以在CommonModel類(lèi)里面定義一些通用的邏輯方法,就可以省去為每個(gè)數(shù)據(jù)表定義具體的模型類(lèi),如果你的項(xiàng)目已經(jīng)有超過(guò)100個(gè)數(shù)據(jù)表了,而大多數(shù)情況都是一些基本的CURD操作的話(huà),只是個(gè)別模型有一些復(fù)雜的業(yè)務(wù)邏輯需要封裝,那么第一種方式和第二種方式的結(jié)合是一個(gè)不錯(cuò)的選擇。

推薦學(xué)習(xí):《PHP視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享