ホームページ  >  記事  >  バックエンド開発  >  为什么用var_dump()打印mysqli对象的时候,结果都是null?

为什么用var_dump()打印mysqli对象的时候,结果都是null?

WBOY
WBOYオリジナル
2016-06-06 20:21:521444ブラウズ

为什么用var_dump()打印mysqli对象的时候,结果都是null?

代码如下:

<code>$mysqli=new mysqli("localhost:3307","root","","test");
var_dump($mysqli);
print_r($mysqli);
</code>

回复内容:

为什么用var_dump()打印mysqli对象的时候,结果都是null?

代码如下:

<code>$mysqli=new mysqli("localhost:3307","root","","test");
var_dump($mysqli);
print_r($mysqli);
</code>

$mysqli=new mysqli("localhost:3306","root","","test");
var_export($mysqli);
echo "
";
var_dump($mysqli);
echo "
";
print_r($mysqli);

返回结果为mysqli::__set_state(array( 'affected_rows' => NULL, 'client_info' => NULL, 'client_version' => NULL, 'connect_errno' => NULL, 'connect_error' => NULL, 'errno' => NULL, 'error' => NULL, 'field_count' => NULL, 'host_info' => NULL, 'info' => NULL, 'insert_id' => NULL, 'server_info' => NULL, 'server_version' => NULL, 'stat' => NULL, 'sqlstate' => NULL, 'protocol_version' => NULL, 'thread_id' => NULL, 'warning_count' => NULL, ))

查了下 var_export
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值
但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL

关于楼主的问题 可能也是类似原因

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。