CakePHP просмотреть проблему области видимости переменной - PullRequest
0 голосов
/ 22 января 2010

У меня есть эти строки в моем файле просмотра

////////////////////////////

$a = 5;
showme()

showme()
{
 global $a;
 echo $a;
}

////////////////////////////////

Проблема: $ a недоступен в функции showme ().

У меня нет выбора для передачи $a в качестве аргумента и нет выбора для перемещения функции из поля зрения. И он должен быть доступен в функции только через ключевое слово global. 1008 *

Я могу изменить способ объявления на $a.

Ответы [ 2 ]

0 голосов
/ 22 января 2010

Проблема в том, что $ a на самом деле определяется не в глобальной области видимости, а в шаблоне представления. Таким образом,

global $a;

не работает так, как вы ожидаете.

Я не уверен, сработает ли это, но вы можете хотя бы попробовать:

$GLOBALS['a'] = 5;

function showme(){
   echo $GLOBALS['a'];
}
0 голосов
/ 22 января 2010

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

$a = 5;
showme()

Изменить на:

$a = 5;
showme();

Ваш код, кажется, в порядке, он должен работать, не уверен, но вы можете попробовать это, если вы внутри класса:

$a = 5;
$this->showme();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...