第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php可以像typescript那樣定義interface嗎?

php可以像typescript那樣定義interface嗎?

回首憶惘然 2019-04-27 17:18:56
classUser{interfaceUser{name:stringage:number}publicfunctioncreate(Userdata){}}如果在php中可以使用類似的語法去校驗參數(shù)類型嗎?
查看完整描述

2 回答

?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

結(jié)論
首先說結(jié)論:可以。
首先
PHP也有接口(interface)這個東西,但是PHP的接口不能聲明類成員所以在這里就不太適用了。
轉(zhuǎn)而言之
PHP5支持抽象類和抽象方法。定義為抽象的類不能被實例化雖然抽象可以設置類成員,但是不能被實例化。
其實
直接使用類來實現(xiàn)即可,當然類成員設置成private然后創(chuàng)建成員對應的setter對其進行賦值校驗即可,如果不嫌麻煩,也可以再創(chuàng)建getter,當然,更簡單的辦法就是重寫__get魔術(shù)方法來實現(xiàn)getter,至于使用方法,沒什么差別。詳見類型約束
拓展
PHP5可以使用類型約束。函數(shù)的參數(shù)可以指定必須為對象(在函數(shù)原型里面指定類的名字),接口,數(shù)組(PHP5.1起)或者callable(PHP5.4起)。不過如果使用NULL作為參數(shù)的默認值,那么在調(diào)用函數(shù)的時候依然可以使用NULL作為實參。
PHP5中類型約束不能用于標量類型如int或string。Traits也不允許。
PHP7.0中,允許標量類型聲明,返回值類型聲明
PHP7.1中允許可為空(NULL)類型聲明,void聲明
                            
查看完整回答
反對 回復 2019-04-27
  • 2 回答
  • 0 關(guān)注
  • 572 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號