簡體   English   中英

子類的PHP特性不起作用

[英]PHP Trait on child class doesn't work

如果我實例化C類特征不起作用,那么我的A類具有“ auditable ”特征,它具有B類和C類。 C類僅具有用於獲取數據的“ getNameAttribute”變量,僅此而已。 而且保存對象沒有問題

class A {
   use auditable;
}

class B extends A {
   // Trait Works in this one
}

class C extends B {
   // Trait Doesn't work
   public function getNameAttribute($val)
   {
      return Str::upper($val);
   }

}

有什么解決辦法嗎?

讓我們從特征開始:實際上,它看起來不錯:

<?php

trait auditable {
    public function foo()
    {
        return 'Bar';
    }
}

class A {
    use auditable;
}

class B extends A {
}

class C extends B {
}

var_dump((new C())->foo());

如果運行此腳本,則會得到: string(3) "Bar"

就您而言,這意味着您在另一個地方有錯誤,要找出錯誤,您必須啟用錯誤日志。 您可以嘗試執行以下操作:

// add in your index.php (or bootstrap file)
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors','On');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM