Передача переменной из включенного PHP-файла в родительский скрипт - PullRequest
0 голосов
/ 01 апреля 2011

Я включаю PHP-файл в заголовок моего сайта WordPress, который ищет файл CSV и возвращает мне нужную мне переменную.Я пытаюсь включить его в заголовок, потому что это переменная, которая понадобится мне позже на сайте.Если я проверю это и попытаюсь отобразить эту переменную из включенного скрипта, она будет работать нормально.Однако на остальной части сайта, если я пытаюсь вызвать эту переменную, она ничего не возвращает.

Я знаю, что переменная создается, потому что я пытаюсь повторить ее, и она работает.Но когда я пытаюсь использовать эту переменную из другого скрипта, это не работает.Есть ли какой-то код, который мне нужен, чтобы передать переменную на остальную часть сайта?

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Переменные по умолчанию имеют только функциональный уровень, их нужно передавать или глобализировать, если вы хотите использовать их в другом месте.В зависимости от того, как устроен ваш скрипт, вы можете сделать его свойством объекта, и в этом случае он будет доступен везде, где доступен ваш объект, и во всех методах этого объекта - другой вариант - использовать глобальный $ var, но это плохоИдея и плохая практика кодирования. Другой способ - поместить его в сеанс, используя $ _SESSION ['myVar'] = $ var, а затем вызвать его таким же образом - еще один способ - передать его через аргументы, такие как $ database-> getRows ($ var), а затем с другой стороны "public function getRows ($ var)", теперь у вас есть $ var в этой функции, передав ее.

0 голосов
/ 01 апреля 2011

3 файла:

a.php:

<?php
include("c.php");

var_dump("c is ".$c . " after include()");

function incit(){
    include("b.php");
    var_dump("b is ".$b . " inside incit()");
}

incit();
var_dump("b is ".$b . " after incit()");



?>

b.php:

<?php
$b="bear";
?>

c.php:

<?php
$c="car";
?>

вывод выглядит так:

string(24) "c is car after include()" 
string(24) "b is bear inside incit()" 
string(19) "b is after incit()" 

поэтому $ b определяется только ВНУТРИ области действия функции, в то время как $ c, с другой стороны, определяется глобально. Поэтому вы должны посмотреть, в какой области вы используете include.

0 голосов
/ 01 апреля 2011

Обязательно global $variable переменную каждый раз, когда вы хотите использовать ее в новой функции или даже в новом скрипте.Это обеспечит доступность переменной везде, где она вам нужна.

...