2012-01-04 97 views
2

我有一個腳本,我試圖從包含文件中分配一個數組值(因爲這些相同的變量將在幾個腳本中使用)。PHP:從包含文件傳遞變量

這似乎差不多的工作,但是當我嘗試打印變量,我得到了不同的結果:

的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()不工作,如果這是我的真實腳本中的問題的原因(我對數組中的每個元素執行foreach並運行使用它的sql查詢)。

感謝, Tev來

+0

Uuughhhhh。對不起 - 我不相信我錯過了報價!感謝大家! – Tev 2012-01-04 16:00:12

回答

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>"; 
+0

我在想,是不是'var_dump()'直接寫到輸出(就像echo一樣)?那麼你應該'echo「

"; var_dump($these_numbers); echo "
」;',不是嗎? – nalply 2012-08-20 09:25:17

+0

也許還有'htmlentities()'? – nalply 2012-08-20 09:25:45

+0

@nalply 1.你說得對。謝謝 - 修正2.什麼'htmlentities()'增加。如果有的話應該是'htmlspecialchars()'。 – PeeHaa 2012-08-20 09:44:02

0

那是因爲thouse功能不加引號工作:

echo "<pre>". 
    print_r($these_numbers) . 
    var_dump($these_numbers) . 
    "</pre>" .   
    "$these_numbers[0]<br>$these_numbers[1]"; 
1

PHP不進行內插函數調用 - 它的字面輸出print_r(,然後$numbers,然後)

你想要做的是這樣的:

echo " <pre> " . 
    print_r($these_numbers) . 
    var_dump($these_numbers) . 
    "</pre>" .   
    "$these_numbers[0]<br>$these_numbers[1]";