PHP基础问题。。。。
今天学函数时忽然发现了一个问题。。<?php
$arr = pathinfo("../test.txt");
print_r($arr);
?>
为什么print_r("$arr")中的$arr加上双引号才可以正常显示。在我印象中,双引号和单引号的区别就是 单引号里的内容PHP直接认为是字符串。双引号PHP会解析。那这样$arr双引号引起来为什么不能正常显示???汗啊....
追问:平常的变量用双引号引起来可以解析。为什么这里不可以了?...
<?php
$arr = pathinfo("../test.txt");
print_r($arr);
?>
为什么print_r("$arr")中的$arr加上双引号才可以正常显示。在我印象中,双引号和单引号的区别就是 单引号里的内容PHP直接认为是字符串。双引号PHP会解析。那这样$arr双引号引起来为什么不能正常显示???汗啊....
追问:平常的变量用双引号引起来可以解析。为什么这里不可以了?...
答案:print_r($arr)得到的结果是Array
(
[dirname] => ..
[basename] => test.txt
[extension] => txt
[filename] => test
)
而print_r("$arr")得到的是Array,因为用双引号引住一个变量,就相当得到这个变量的强行转换成字符串后的值。数组强行转换成字符串的结果就是“Array”。如果楼主的机print_r($arr)得不到任何输出的话,找找php相关配置。
双引号是字符串的时候用的
你把双引号扩在数组变量中,print_r()会认为它是一个字符串双引号里面的变量是直接解释为字符串,但是你那个是数组所以就会返回“Array” 之后再print_r也会得出“Array”的结果。