我編寫了一個php類來表示查詢結果。在傳入的查詢中,我將它轉換爲數組,將其轉換爲JSON(根據json_encode)並將其返回給用戶。php將屬性轉換爲數組
現在我想定義一個類實習生「調試」屬性,它不應該在輸出中 - 我如何隱藏將類投射到數組的屬性?
我編寫了一個php類來表示查詢結果。在傳入的查詢中,我將它轉換爲數組,將其轉換爲JSON(根據json_encode)並將其返回給用戶。php將屬性轉換爲數組
現在我想定義一個類實習生「調試」屬性,它不應該在輸出中 - 我如何隱藏將類投射到數組的屬性?
聲明它private
或protected
。
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。
從unset
中刪除結果數組中的元素。
好的,這對一些屬性很有用,但我更喜歡某些東西,而不需要顯式函數調用 - 就像「聲明屬性爲私有」(但這不起作用)。 – NaN 2012-02-17 13:39:12
我以前試過 - 它返回類似「\ u0000 * \ u0000debug」的錯誤:false – NaN 2012-02-17 13:36:23
@NaN:正如您所看到的,我只是對它進行了測試。但不要聽我的話:http://codepad.org/mSCdaBjT – 2012-02-17 13:38:37
好吧,我發現錯誤 - 我把它鑄造成一個數組...像json_encode((array)$ f);不起作用......怪異但真實! – NaN 2012-02-17 13:41:45