2012-02-17 94 views
1

我編寫了一個php類來表示查詢結果。在傳入的查詢中,我將它轉換爲數組,將其轉換爲JSON(根據json_encode)並將其返回給用戶。php將屬性轉換爲數組

現在我想定義一個類實習生「調試」屬性,它不應該在輸出中 - 我如何隱藏將類投射到數組的屬性?

回答

1

聲明它privateprotected

class Foo 
{ 
    public $bar = 'bar'; 
    private $baz = 'baz'; 
    protected $quux = 'quux'; 
} 

$f = new Foo(); 

echo json_encode($f); 

結果:

{"bar":"bar"} 

NB。需要PHP 5,請參閱PHP手冊中的Visibility

+0

我以前試過 - 它返回類似「\ u0000 * \ u0000debug」的錯誤:false – NaN 2012-02-17 13:36:23

+0

@NaN:正如您所看到的,我只是對它進行了測試。但不要聽我的話:http://codepad.org/mSCdaBjT – 2012-02-17 13:38:37

+0

好吧,我發現錯誤 - 我把它鑄造成一個數組...像json_encode((array)$ f);不起作用......怪異但真實! – NaN 2012-02-17 13:41:45

2

unset中刪除結果數組中的元素。

+0

好的,這對一些屬性很有用,但我更喜歡某些東西,而不需要顯式函數調用 - 就像「聲明屬性爲私有」(但這不起作用)。 – NaN 2012-02-17 13:39:12