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

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

有沒有什么更“魔術”一點的方法。。???

有沒有什么更“魔術”一點的方法。。???

PHP
MMTTMM 2023-04-18 18:14:32
諸位看到這個標題可能首先想到的是__get魔術方法,窩也想到了,但是——因為我會需要用到json_encode($obj)來輸出到JS訪問,所以此處的some_attr只能為public。那么在調用$obj->some_attr時就不能用__get來做了。我實在不想弄個$obj->to_json()這種東西。
查看完整描述

2 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

<?phpclass test{    public $var_a;    public $var_b;    public function __get($name)    {        //do something ...
        //ext:
        $pre    = substr($name,0,1);        $var    = substr($name,1);        if($pre !== '_') return;        if(!property_exists($this,$var)) return;        if(!method_exists($this,$name)) return;        $this->$name();
    }    protected function _var_a()    {        $this->var_a = 'a';        return $this->var_a;
    }

}$test   = new test();$test->_var_a;$str    = json_encode($test);var_dump($str);

這是什么需求。還是我理解錯了?
直接外部操作不就行了,何必這么繁。


查看完整回答
反對 回復 2023-04-21
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

你的意思是要在類內部指定哪些成員要被序列化吧:

1)讓你的類去實現Serializable接口(5.1就支持了),自己寫個serialize方法返回json_encode過的數據;

2)或者去實現JsonSerializable接口(5.4+)。


查看完整回答
反對 回復 2023-04-21
  • 2 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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