-
I set up User.php, User.php under the model layer and have a method getUserInfo to query the data, as follows:
$userModel = new UserModel; dump($userModel->getUser()); dump(json_encode($userModel->getUser()));
the first printed data is as follows
object(app\index\model\User)-sharp10 (32) { ["dateFormat":protected] => string(5) "Y/m/d" ["type":protected] => array(1) { ["birthday"] => string(9) "timestamp" } ["insert":protected] => array(1) { ["status"] => int(1) } ["connection":protected] => array(0) { } ["parent":protected] => NULL ["query":protected] => NULL ["name":protected] => string(4) "User" ["table":protected] => NULL ["class":protected] => string(20) "app\index\model\User" ["error":protected] => NULL ["validate":protected] => NULL ["pk":protected] => NULL ["field":protected] => array(0) { } ["readonly":protected] => array(0) { } ["visible":protected] => array(0) { } ["hidden":protected] => array(0) { } ["append":protected] => array(0) { } ["data":protected] => array(7) { ["id"] => int(8) ["nickname"] => string(4) "1111" ["name"] => string(4) "c" ["password"] => string(6) "111111" ["create_time"] => int(0) ["update_time"] => int(0) ["status"] => int(0) } ["origin":protected] => array(7) { ["id"] => int(8) ["nickname"] => string(4) "1111" ["name"] => string(4) "c" ["password"] => string(6) "111111" ["create_time"] => int(0) ["update_time"] => int(0) ["status"] => int(0) } ["relation":protected] => array(0) { } ["auto":protected] => array(0) { } ["update":protected] => array(0) { } ["autoWriteTimestamp":protected] => bool(true) ["createTime":protected] => string(11) "create_time" ["updateTime":protected] => string(11) "update_time" ["isUpdate":protected] => bool(true) ["updateWhere":protected] => array(1) { ["id"] => array(2) { [0] => string(2) "eq" [1] => int(8) } } ["failException":protected] => bool(false) ["useGlobalScope":protected] => bool(true) ["batchValidate":protected] => bool(false) ["resultSetType":protected] => string(5) "array" ["relationWrite":protected] => NULL }
and call the json_encode method to print json like this
string(132) "{"id":8,"nickname":"1111","name":"c\u67d0","password":"111111","create_time":"1970\/01\/01","update_time":"1970\/01\/01","status":0}"
I test the value of json_encode myself. If it is an object, it will output the public properties of the object. The test code is as follows:
class TestClass { public $foo; public function __construct($foo) { $this->foo = $foo; } public function __toString() { return $this->foo; } } $class = new TestClass("Hello"); var_dump(json_encode($class));
print out string (15) "{" foo ":" Hello "}". Why does json_encode under thinkphp print such data
?