Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_encode给出了意外的结果_Php - Fatal编程技术网

Php json_encode给出了意外的结果

Php json_encode给出了意外的结果,php,Php,我想使用JSON对一个对象进行编码,以响应AJAX请求。首先,我将对象转换为一个数组(结果看起来不错),然后我使用json\u encode将数组编码为json格式,但我得到了一个意外的结果。获取的JSON字符串的类名在属性名之前,空字符“\0000”出现在许多地方。我所有的文件都使用UTF-8编码。如果我使用get\u object\u vars,我将得到结果array=[] 我如何解决这个问题 我得到的结果是:{“\u0000DB\u0000connection”:null,“\u0000D

我想使用JSON对一个对象进行编码,以响应AJAX请求。首先,我将对象转换为一个数组(结果看起来不错),然后我使用
json\u encode
将数组编码为json格式,但我得到了一个意外的结果。获取的JSON字符串的类名在属性名之前,空字符“\0000”出现在许多地方。我所有的文件都使用UTF-8编码。如果我使用
get\u object\u vars
,我将得到结果
array=[]

我如何解决这个问题

我得到的结果是:
{“\u0000DB\u0000connection”:null,“\u0000DB\u0000serverName”:“localhost”、“\u0000DB\u0000userName”:“root”、“\u0000DB\u0000password”:null,“\u0000DB\u0000dbName”:“thahtin”}

以下是我使用的代码:

class DB
{
    private $connection;
    private $serverName;
    private $userName;
    private $password;
    private $dbName;

    public function __construct()
    {
        $config = new Configuration();
        $this->serverName = 'localhost'; //$config->getConfig("server");
        $this->userName = 'root'; //$config->getConfig("userName");
        $this->password = null; //$config->getConfig("password");
        $this->dbName = 'thahtin'; //$config->getConfig("database");
    }       

    public function open()
    {
        if(!$this->connection)
            mysql_close($this->connection);
        $this->connection = mysql_connect($this->serverName, $this->userName, $this->password);
        if(!$this->connection)
        {
            die('Could not connect. Error: ' . mysql_error());
        }
        mysql_select_db($dbName);
    }
}

$db = new DB();
echo json_encode((array)$db);

返回一个空数组,因为您的所有属性都是私有的。将它们公开,或者(更好)自己构造数组,以便控制其中的内容。

返回一个空数组,因为您的所有属性都是私有的。公开它们,或者(更好)自己构造数组,以便控制其中的内容。

不太可能是为5.4开发的,但是请看一看。不太可能是为5.4开发的,但是请看一看。