2012-01-04 5 views
2

私は、インクルードファイルからArray値を割り当てようとしているスクリプトを持っています(これらの変数は複数のスクリプトで使用されるためです)。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

答えて

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

+0

おそらく 'htmlentities()'も同様ですか? – nalply

+0

@nalply 1.そうです。 Thanks - fixed 2. 'htmlentities()'は何を追加しますか?何かあれば 'htmlspecialchars()'でなければなりません。 – PeeHaa

0

ザッツthouse機能は引用符では動作しないので:

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

PHPは関数呼び出しを補間しない - それは文字通り)

その後、 $numbersそして、 print_r(を出力しています

あなたがしたいことはこれです:

echo " <pre> " . 
    print_r($these_numbers) . 
    var_dump($these_numbers) . 
    "</pre>" .   
    "$these_numbers[0]<br>$these_numbers[1]"; 
関連する問題