寫(xiě)一個(gè)分級(jí)的命名空間, 并實(shí)現(xiàn)類的自動(dòng)加載
2. 寫(xiě)一個(gè)trait類, 理解它的功能與使用場(chǎng)景
課程筆記:
(第一個(gè)視頻)
接口常量,就是在接口里面設(shè)置一個(gè)常量,可以用作配置文件來(lái)使用。我們把一些配置參數(shù)直接設(shè)置在接口里,這樣用類實(shí)現(xiàn)的時(shí)候,就可以直接使用這些參數(shù)了。
bindvalue第二個(gè)參數(shù)可以放數(shù)字,bindparam里面第二個(gè)參數(shù)只能放變量。
可以通過(guò)date函數(shù)格式化時(shí)間戳,將時(shí)間戳轉(zhuǎn)換成正常的日期。
(第二個(gè)視頻)
后期靜態(tài)綁定:延遲靜態(tài)綁定。用在靜態(tài)繼承的上下文環(huán)境中
靜態(tài)繼承的上下文:就是在子類中繼承父類中的靜態(tài)方法。如果不用后期靜態(tài)綁定,那么子類的方法返回的還是父類的結(jié)果。使用方法是將父類中的self改成static,這樣靜態(tài)方法就會(huì)動(dòng)態(tài)的跟他相應(yīng)的類進(jìn)行綁定。所以靜態(tài)類的繼承基本都是用static來(lái)寫(xiě)。
靜態(tài)繼承的上下文環(huán)境中,調(diào)用被子類重寫(xiě)的靜態(tài)方法,使用關(guān)鍵字static來(lái)代替掉self。
(第三個(gè)視頻)
命名空間的分級(jí)管理:通過(guò)"\"可以把命名空間分級(jí)
用use as關(guān)鍵詞,可以把一長(zhǎng)串命名空間變成一個(gè)別名,可以簡(jiǎn)寫(xiě)長(zhǎng)串代碼。如果省略了as關(guān)鍵詞,那么當(dāng)前類的別名就是當(dāng)前類的去掉空間名稱的類名。當(dāng)有可能發(fā)生歧義的時(shí)候,最好用as來(lái)區(qū)分類名。
寫(xiě)一個(gè)分級(jí)的命名空間, 并實(shí)現(xiàn)類的自動(dòng)加載
首先我的三個(gè)類的文件目錄是這樣的
test1就放在最頂部的文件目錄,test2放在one文件夾里,test3放在two文件夾里。
test.php的代碼如下:
<?php namespace _1010; spl_autoload_register(function ($className){ $path = str_replace('_1010'.'\\',DIRECTORY_SEPARATOR,$className); $path = __DIR__.'/'.$path.'.php'; include $path; }); echo test1::get(); echo '<br>'; echo one\test2::get(); echo '<br>'; echo one\two\test3::get();
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
test1.php的class返回的是_1010\test1,所以我們str_replace里面要替換的文字要把_1010換掉。最后的結(jié)果是這樣
寫(xiě)一個(gè)trait類, 理解它的功能與使用場(chǎng)景
trait類是夾在父類和子類之間的一個(gè)類,可以用來(lái)實(shí)現(xiàn)子類多繼承的功能。trait類不允許實(shí)例化,只能被子類繼承使用。在子類中用use關(guān)鍵字來(lái)將trait類引入進(jìn)來(lái)。
<?php /** * Created by PhpStorm. * User: HuangSzeKit * Date: 2019/10/14 * Time: 1:22 */ namespace _1010; trait sum{ public function sum($a,$b){ return $a.' + '.$b.' = '.($a+$b); } } trait minus{ public function minus($a,$b){ return $a.' - '.$b.' = '.($a-$b); } } class Client{ use sum; use minus; } $test = new Client(); echo $test->sum(3,4); echo '<br>'; echo $test->minus(8,5);
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)