为什么json_encode()不包括指定对象的函数

时间:2016-10-16 16:10:41

标签: php json oop

我第一次创建对象时尝试json_encode

class Test {
  public $action= 'sleep';

  public function wake() {
    $this->action = 'wake';
  }
}

然后我编码

$enc_obj = json_encode(new Test());

我然后var_dump()编辑

var_dump($enc_obj);

我得到了一个没有函数的属性列表

'{"action":"sleep"}'

我是否遗漏了某些东西,或者它应该如何运作?

1 个答案:

答案 0 :(得分:3)

json_encode()只会以JSON格式输出数据。 JSON格式不支持任何函数,也不支持javascript和PHP函数。如http://www.json.org所述,它是一种轻量级数据交换格式。" - 不是编程语言。

另见Is it valid to define functions in JSON results?

在PHP中,您可以扩展jsonSerializeable接口以手动定义JSON结果的方式。