PHP: передача переменных из включаемого файла - PullRequest
2 голосов
/ 04 января 2012

У меня есть скрипт, в котором я пытаюсь назначить значения Array из включаемого файла (потому что эти же переменные будут использоваться в нескольких скриптах).

Кажется, что это почти работает, но когда я пытаюсь напечатать переменные, я получаю другой результат:

script.php:

<code>   <?php
    include("test_includes.inc.php");

     $these_numbers = $numbers;
     echo " <pre> print_r($these_numbers)   var_dump($these_numbers)
     
$ these_numbers [0]
$ these_numbers [1] "; ?>

и test_include.inc.php

   <?php
   $numbers = ARRAY('one','two');
   ?>

Результат:

   print_r(Array)

   var_dump(Array)

   one
   two

Полагаю, я не понимаю, почему не работают print_r () и var_dump (), и является ли это причиной моих проблем в моем реальном скрипте (где я выполняю foreach для каждого элемента в массиве и запускаю SQL-запрос, используя его).

Спасибо, Тев

Ответы [ 3 ]

2 голосов
/ 04 января 2012

PHP не выполняет функцию, заключенную в двойные кавычки.Хотя он выполняет синтаксический анализ переменных (следовательно, ARRAY).

Итак:

$test = 'something';

echo "$test"; // outputs something

echo "strtoupper($test)"; // outputs strtoupper(something) instead of SOMETHING

В конкретном случае вы можете сделать:

<code><?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 "
";
1 голос
/ 04 января 2012

PHP не интерполирует вызовы функций - он буквально выводит print_r(, затем $numbers, затем )

Что вы хотите сделать, это:

<code>echo " <pre> " .
     print_r($these_numbers) .  
     var_dump($these_numbers) .
     "
"."$ these_numbers [0]
$ these_numbers [1] ";
0 голосов
/ 04 января 2012

Это потому, что эти функции не работают в кавычках:

<code>echo "<pre>".
     print_r($these_numbers) .
     var_dump($these_numbers) .
     "
". "$ these_numbers [0]
$ these_numbers [1]";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...