Статичные переменные пропали...

Beckie

Новичок
Статичные переменные пропали...

PHP:
class Info {
	public static $fcat1;
	public static $fcat2;
	public static $fcat3;	
	
function get_info($cat1,$cat2,$cat3){
			
			self::$fcat1 = 1;
			self::$fcat2 = 2;
			self::$fcat3 = 3;
			$this->fcat1 = 1;
			$this->fcat2 = 2;
			$this->fcat3 = 3;
			Info::$fcat1 = 1;
			Info::$fcat2 = 2;
			Info::$fcat3 = 3;
По каким причинам, статичные переменные могут пропасть?

PHP:
$classes = get_declared_classes();
foreach($classes as $class) {echo $class . "<br/>";}
Класс содержащий переменные в списке есть на этой странице.

Или я где-то жутко ступил или просто чего-то не понимаю... :rolleyes:
 

Beckie

Новичок
Почему содержимое всех статичных переменных вдруг исчезает? О_О
 

Adelf

Administrator
Команда форума
Возможно автор думает, что они должны быть в get_defined_vars() ?
 

Beckie

Новичок
Через echo, содержание переменных не выводится. :|

Еще одну странную вещь заметил.

$po =& $_POST;
print_r($po);

Так submit есть, а так:
if(isset($_POST['submit'])) {echo "is set";} else {echo "isn't";}

Выводит is set, а через ctrl+u в браузере пишется isn't.

Это как понимать? О_О

Статичные переменные оказывается не теряются, их содержимое в обработчике формы почему-то теряются. Файл с классами естественно добавил.

Если переназначить содержимое статичных переменных, то они выводятся нормально. Почему-то меджу формой и обработчиком теряются данные.
 

dimagolov

Новичок
Никак не могу решить что колоть больному - аспирин или галоперидол или и то и другое сразу....
 

r4sh

Новичок
Выводит is set, а через ctrl+u в браузере пишется isn't.

Наверно потому что, браузер еще раз загружает страницу, при этом не передавая пост данные. И браузер наверно, firefox?

PHP:
function get_info($cat1,$cat2,$cat3){
            
            self::$fcat1 = 1;
            self::$fcat2 = 2;
            self::$fcat3 = 3;
            $this->fcat1 = 1;
            $this->fcat2 = 2;
            $this->fcat3 = 3;
            Info::$fcat1 = 1;
            Info::$fcat2 = 2;
            Info::$fcat3 = 3;
А тут ошибка на ошибке. Метод не объявлен как статический. А юзается self. Если метод использовать же как статический - то нельзя юзать this.

Так в чем проблема то была?
 

r4sh

Новичок
а одну и ту же переменную можно юзать как статическую и нет?
 

A1x

Новичок
думаю что это плохая идея
PHP:
self::$fcat1 = 1;
...
$this->fcat1 = 1;
это точно бред. не зря тут аминазин предлагали :)
 
Сверху