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

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

方法聲明應(yīng)與PHP中的父方法兼容

方法聲明應(yīng)與PHP中的父方法兼容

方法聲明應(yīng)與PHP中的父方法兼容Strict Standards: Declaration of childClass::customMethod() should be compatible with that of parentClass::customMethod()PHP中出現(xiàn)此錯誤的可能原因是什么?我在哪里可以找到關(guān)于它意味著什么的信息?兼容?
查看完整描述

3 回答

?
jeck貓

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

childClass::customMethod()具有不同的參數(shù),或不同的訪問級別(公共/私有/保護)parentClass::customMethod().


查看完整回答
反對 回復(fù) 2019-07-13
?
墨色風(fēng)雨

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

此消息意味著某些可能的方法調(diào)用可能在運行時失敗。假設(shè)你有

class A { public function foo($a = 1) {;}}class B extends A { public function foo($a) {;}}function bar(A $a) {$a->foo();}

編譯器只根據(jù)不需要參數(shù)的A:foo()的要求檢查調(diào)用$a->foo()。但是,$a可能是B類的對象,它需要一個參數(shù),因此調(diào)用將在運行時失敗。

但是,這不會失敗,也不會觸發(fā)錯誤。

class A { public function foo($a) {;}}class B extends A { public function foo($a = 1) {;}}function bar(A $a) {$a->foo();}

因此,沒有任何方法比它的父方法具有更多需要的參數(shù)。

當類型提示不匹配時,也會生成相同的消息,但在這種情況下,PHP的限制性更強。這就產(chǎn)生了一個錯誤:

class A { public function foo(StdClass $a) {;}}class B extends A { public function foo($a) {;}}

這一點也是如此:

class A { public function foo($a) {;}}class B extends A { public function foo(StdClass $a) {;}}

這似乎比它所需要的限制更多,我認為這是由于內(nèi)部因素造成的。

可見性差異會導(dǎo)致不同的錯誤,但基本原因是相同的。沒有任何方法比它的父方法更不可見。


查看完整回答
反對 回復(fù) 2019-07-13
?
繁星淼淼

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

如果要在不關(guān)閉任何錯誤的情況下保持OOP窗體,還可以:

class A{
    public function foo() {
        ;
    }}class B extends A{
    /*instead of : 
    public function foo($a, $b, $c) {*/
    public function foo() {
        list($a, $b, $c) = func_get_args();
        // ...

    }}


查看完整回答
反對 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 536 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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