一个非常奇怪的问题,希望大家看看。1. 首先定义了一个类Categoryclass Category
{
private $categoryName;
private $displayText;
private $createTime;
private $modifyTime;
// other properties // setter and getter
}
2. 然后定义了这样一个函数function createCategory()
{
$category = new Category();
$category->setModifyTime(date("Y-m-d H:i:s"));
$category->setCreateTime(date("Y-m-d H:i:s"));
$category->setCreatorName("some name");
return $category;
}说明:这里所示的函数实现仅仅是一个示例3. 之后调用json_encode函数,问题就来了$category = createCategory();
echo "{\"state\":\"success\", \"data\":" . json_encode($category) . "}";运行这里的两行代码,输出结果如下:{"state":"success", "data":{}}分明设置了具体的值,为什么json_encode之后什么都没有?
望指点迷津。
{
private $categoryName;
private $displayText;
private $createTime;
private $modifyTime;
// other properties // setter and getter
}
2. 然后定义了这样一个函数function createCategory()
{
$category = new Category();
$category->setModifyTime(date("Y-m-d H:i:s"));
$category->setCreateTime(date("Y-m-d H:i:s"));
$category->setCreatorName("some name");
return $category;
}说明:这里所示的函数实现仅仅是一个示例3. 之后调用json_encode函数,问题就来了$category = createCategory();
echo "{\"state\":\"success\", \"data\":" . json_encode($category) . "}";运行这里的两行代码,输出结果如下:{"state":"success", "data":{}}分明设置了具体的值,为什么json_encode之后什么都没有?
望指点迷津。
$category->setCreateTime(date("Y-m-d H:i:s"));
$category->setCreatorName("some name");
这几个成员函数在哪里定义?具体执行什么操作?你自己没有定义吧?
而且改成public破坏了类的封装性
$this->$name = $value ;
}
这种小功能用类来解决我觉得杀鸡用大牛刀了,况且所谓完全封装也不能代表就是OOP
http://smorgasbork.com/component/content/article/34-web/65-json-encoding-private-class-members谢谢楼上的各位
正规做法应该是写个__toString()方法