LINUX.ORG.RU

объявить переменную константой

 


0

1

Вопрос - существует ли в php способ защитить переменную от изменений?
Переменная строкового типа.
Написал мод для одного форума, в котором использовал то, что писатели движка не объявляли значение переменной. Но в последних версиях они исправились и теперь после моего
$template = 'SOME TEXT';
вызывается
$template = ";
и вся идет лесом(


Ответ на: комментарий от AnDoR

дефайном тут не поможешь.
вкратце код CMS
//====================
eval_hook('hook1');
$template = ";
if ($some_condition){
$template = 'qweqweqwe';
}
echo $template;
eval_hook('hook2');
//====================
// мой код в hook1
if ($some_condition2){
$some_condition = false;
$template = 'asdasdasd'
}
//====================
Раньше строки
$template = "; не было и я мог в $templаte записывать что хочу.

spdooh
() автор топика

man getter

man static (php keyword)

anonymous
()

Эммм... а что, переименовать переменную $template на $somevarname никак нельзя? Или (остановите меня 7 мужиков)

$template2 = $template;
unset($template);
// ТВОЙ КОД
$template = $template2;
Но задача из разряда магии или я чтото не понимаю

LeoK
()

Вопрос - существует ли в php способ защитить переменную от изменений?

есть. Только не в php, а в C++.

emulek
()
Ответ на: комментарий от LeoK

Ты чего-то не понимаешь.
Можно еще больше упроститиь код:

run_my_code();
$template='';
echo $template;
Место, где я могу что-то делать - фугкция run_my_code();
Единственное, где происходит вывод - это есho $template;
Но перед выводом переменная переопредаляется и все мои действия идут лесом.
Вроде бы можно разрешить ситуацию - писать в буфер, а потом в нем искать и заменять... Но это как-то через задницу... Да и мало ли, вдруг кто еще придумает буфер очистить...

spdooh
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.