PHP:从包含文件传递变量

时间:2012-01-04 15:50:56

标签: php include

我有一个脚本,我试图从包含文件中分配一个数组值(因为这些相同的变量将在几个脚本中使用)。

它似乎几乎可以工作,但是当我尝试打印变量时,我得到了不同的结果:

的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

3 个答案:

答案 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]";