Кохана очищается от глобалов? - PullRequest
0 голосов
/ 24 июня 2011

Я написал вопрос ранее, пытаясь обойти использование контроллера в Kohana, но я сдался и переписал файл. Итак, теперь у меня есть этот php-скрипт внутри контроллера Kohana. Представление о том, что контроллер рендерит, «требует» php-файла, поэтому я могу выполнять некоторые сторонние функции. У меня были серьезные проблемы с этим и добрался до отладки. Кажется, проблема в том, что функции внутри включенного файла не могут получить доступ к переменным вне функции из этого же файла. Кажется, что Кохана как-то очищает глобалы ???

пример:

//controller.php
require_once("ccfunctions.php");

//ccfunctions.php
$test = 'something';
function test(){
  global $test;
  echo $test;
}
test();
//This does not produce anything

Есть мысли по этому поводу?

EDIT: На самом деле, приведенный выше пример не работает даже из моего файла представления, который отображается. Забудьте включенный файл. Я понимаю, что Кохана пытается навязать модель MVC, но это смешно. Почему я не могу не создать функцию и не вызвать глобальную переменную из моего файла представления?

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Не используйте глобалы.Зачем использовать OOP-фреймворк, если вы хотите использовать глобальные переменные?

2 голосов
/ 24 июня 2011

Вам необходимо указать global для переменной в обоих случаях:

//controller.php
require_once("ccfunctions.php");

//ccfunctions.php
global $test;
$test = 'something';
function test(){
  global $test;
  echo $test;
}
test();
//This does not produce anything

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

...