我有一个脚本,我试图从包含文件中分配一个数组值(因为这些相同的变量将在几个脚本中使用)。
它似乎几乎可以工作,但是当我尝试打印变量时,我得到了不同的结果:
的script.php:
<?php
include("test_includes.inc.php");
$these_numbers = $numbers;
echo " <pre> print_r($these_numbers) var_dump($these_numbers)
</pre>
$these_numbers[0]<br>$these_numbers[1]";
?>
和test_includes.inc.php
<?php
$numbers = ARRAY('one','two');
?>
结果:
print_r(Array)
var_dump(Array)
one
two
我想我不明白为什么print_r()和var_dump()不起作用,如果这是我的真实脚本中的问题的原因(我对数组中的每个元素进行预测并运行使用它的SQL查询。)
谢谢, TEV
答案 0 :(得分:2)
PHP不执行双引号的函数。它虽然解析变量(因此ARRAY
)。
所以:
$test = 'something';
echo "$test"; // outputs something
echo "strtoupper($test)"; // outputs strtoupper(something) instead of SOMETHING
在特定情况下,您可以这样做:
<?php
include("test_includes.inc.php");
$these_numbers = $numbers; // not really needed, but hard to tell without seeing your complete code
echo "<pre>";var_dump($these_numbers);echo "</pre>";
答案 1 :(得分:1)
PHP没有插入函数调用 - 它实际上输出print_r(
,然后输出$numbers
,然后输出)
你想要做的是:
echo " <pre> " .
print_r($these_numbers) .
var_dump($these_numbers) .
"</pre>" .
"$these_numbers[0]<br>$these_numbers[1]";
答案 2 :(得分:0)
那是因为thouse功能不能用引号起作用:
echo "<pre>".
print_r($these_numbers) .
var_dump($these_numbers) .
"</pre>" .
"$these_numbers[0]<br>$these_numbers[1]";