亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

打印輸出時異常對象的字段

打印輸出時異常對象的字段

PHP
aluckdog 2022-10-28 14:45:11
請查看當我打印出 Exception 對象的內容時得到的輸出(使用此處的內置類):    Exception Object(    [message:protected] => My custom message    [string:Exception:private] =>     [code:protected] => 2281488    [file:protected] => /home/user/scripts/test.php    [line:protected] => 18    [trace:Exception:private] => Array        (        )    [previous:Exception:private] => )大多數字段都具有field_name:visibility_keyword格式,但其中兩個字段之間出現異常。這是什么意思?此外,官方手冊中沒有提到其他兩個字段,即$stringand $trace,但我知道后者在函數內拋出異常對象時接收一個值,因此它包含調用函數的順序,直到其中一個創建說異常。當我嘗試回顯異常并保持為空時,字符串字段會被分配一個值,除非我在打印出對象的內容之前回顯它。你能告訴我這個領域是如何運作的嗎?我會很感激我能得到的任何意見。謝謝!
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

這與異常無關,它只是如何顯示對象的私有var_dump()和print_r()受保護屬性。


私有屬性總是顯示在類的名稱之前,:private 它告訴您繼承層次結構中的哪個類可以訪問該屬性。


受保護的屬性不需要這樣做,因為層次結構中的任何類都可以訪問它們。


class Class1 {

    private $private1;

    protected $protected1;

    public $public1;

}

class Class2 extends Class1 {

    private $private2;

    protected $protected2;

    public $public2;

}

print_r(new Class2);

顯示


Class2 Object

(

    [private2:Class2:private] => 

    [protected2:protected] => 

    [public2] => 

    [private1:Class1:private] => 

    [protected1:protected] => 

    [public1] => 

)

手冊中沒有提到私有屬性,因為它們不是公共接口的一部分,它們僅供類內部使用。這就是為什么它們被宣布為私有的。


受保護的屬性已記錄在案,因為如果您定義Exception.


查看完整回答
反對 回復 2022-10-28
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

string:Exception:private. 表示具有可見string性的Exception類屬性。privateprevious和相同trace。這三個屬性僅在Exception類中可用。正如您所注意到的,protected屬性之間沒有類,因為它可以傳遞給子類。這句話也適用于public屬性。



查看完整回答
反對 回復 2022-10-28
  • 2 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號