print_r($变量,TRUE)
在手册上看到,print_r 有个后面为 TURE 的参数,在 PDO 执行的时候,PHP 手册上推荐的用法是
$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo(),TRUE ) );
手册上说,print_r 默认第二个参数就是 TRUE,那么说 加不加 TRUE,表现应该是一致的,但是发生了不一致的表现,很奇怪的 位置 表现
推荐的加 TRUE 的正常输出: (假设 SQL 语句出错,模拟一下)
$dsn = "mysql:host=127.0.0.1;dbname=数据库名称";
$db = new PDO($dsn, '数据库用户名', '密码');
$sql = '********';
$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo(),TRUE ) );
输出是 正常的预期:
程序运行出错,出错信息: Array ( [0] => 23000 [1] => 19 [2] => UNIQUE constraint failed: user.name )
但是如果没有 TURE 参数, 即程序是:
$dsn = "mysql:host=127.0.0.1;dbname=数据库名称";
$db = new PDO($dsn, '数据库用户名', '密码');
$sql = '********';
$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo() ) );
程序的输出很奇怪, 先出现了 array 打印,再输出了 数字 1
Array ( [0] => 23000 [1] => 19 [2] => UNIQUE constraint failed: user.name ) 程序运行出错,出错信息:1
有哪位大神知道这是咋回事?
1
xiaoyanbot OP 在第二个用法中,
为什么 Array 的 输出会泡在前面去了呢? |
2
qiayue 2017-05-22 23:53:28 +08:00
http://php.net/manual/en/function.print-r.php
第二个参数,默认是 false |
3
pubby 2017-05-23 00:54:33 +08:00
看的什么手册,第二个参数明明默认 false
http://cn.php.net/manual/en/function.print-r.php mixed print_r ( mixed $expression [, bool $return = false ] ) 第二个用法: print_r 输出内容,然后返回 true |
4
szopen 2017-05-23 09:33:13 +08:00
die 这里可以看成是函数,参数是要打印的信息。所以要先执行 print_r,print_r 然后返回 1
|
5
xiaoyanbot OP 明白啦!
|