Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не срабатывает проверка if.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не срабатывает проверка if.
muravey
Отправлено: 13 Мая, 2013 - 14:27:07
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Доброго времени суток!

Есть значение
...
PHP:
скопировать код в буфер обмена
  1.  
  2.  [mBlockLeft] => Array
  3.                         (
  4.                             [0] => Array
  5.                                 (
  6.                                     [value] => CMS
  7.  
  8.                                     [title] => Система Управления Сайтом
  9.  
  10.                                     [page] => Cms
  11.  
  12.                                     [file] => cms
  13.                                 )
  14.  
  15.                             [1] => Array
  16.                                 (
  17.                                     [value] => Пример
  18.  
  19.                                     [title] => iTamiT FrameWork
  20.  
  21.                                     [page] => Examples
  22.  
  23.                                     [file] => examples
  24.                                 )
  25.  
  26.                         )
  27.  
  28.                     [mMain] => Examples
  29.  + Examples
  30.                     [mActived] => Examples
  31.                 )
  32.  

...

КОД
PHP:
скопировать код в буфер обмена
  1.  
  2. // Если значение Page не задано явно, подразумеваем страницу Examples
  3.             $admin_page = isset ($_GET['page']) ? $_GET['page'] : 'Examples';
  4.            
  5.             $this->mActived = $admin_page;
  6.      
  7.             if (!empty($this->mBlockLeft))
  8.             {
  9.                 foreach ($this->mBlockLeft as $key => $val)
  10.                 {
  11.                     $this->mMain = $this->mBlockLeft[$key]['page'].' + '.$admin_page;
  12.                     // Выбираем какую страницу администрирования загружать ...
  13.                     if ($admin_page == $this->mBlockLeft[$key]['page'])
  14.                     {
  15.                         $this->mMain = 'admin_'.$this->mBlockLeft[$key]['file'].
  16.                                        '/admin_'.$this->mBlockLeft[$key]['file'].'.tpl';
  17.                     }    
  18.                 }
  19.             }
  20.  


В итоге $this->mMain должен иметь значение 'admin_examples/admin_examples.tpl'
Но такого не происходит, почему?
(Добавление)
Как может повлиять на сравнение простой переменной и свойством объекта, на false или true?
 
 Top
avtor.fox
Отправлено: 13 Мая, 2013 - 15:22:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)






проверяйте данные. код смотреть - неинтересно
 
 Top
muravey
Отправлено: 13 Мая, 2013 - 15:38:54
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




avtor.fox пишет:

проверяйте данные. код смотреть - неинтересно


ПРОВЕРЯЮ

PHP:
скопировать код в буфер обмена
  1.  
  2. var_dump($admin_page);
  3. var_dump($this->mBlockLeft[$key]['page']);
  4.  


ВЫДАЛ



Что мне делать с этим?
 
 Top
avtor.fox
Отправлено: 13 Мая, 2013 - 15:42:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




muravey, вот Вам и ответ.

(А ещё, я буду добрым волшебником и подскажу, что указатель $this работает только внутри тела класса)
 
 Top
muravey
Отправлено: 13 Мая, 2013 - 15:48:25
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




avtor.fox пишет:
muravey, вот Вам и ответ.

(А ещё, я буду добрым волшебником и подскажу, что указатель $this работает только внутри тела класса)


Т.е. вы имеете ввиду что

PHP:
скопировать код в буфер обмена
  1.  
  2. class AdminHome
  3. {
  4.     ......
  5.     // Определяем файл шаблона
  6.     public $mBlockLeft;
  7.    .....
  8.  
  9.    public function init()
  10.     {
  11.  
  12.          //ЗДЕСЬ КОД КОТОРЫЙ ВЫШЕ
  13.  
  14.     }
  15.  
  16. }
  17.  


Ну и что я делаю не так добрый волшебник? )
(Добавление)
Почему переменная выводит в дампе string(3)?
 
 Top
imya
Отправлено: 13 Мая, 2013 - 16:08:39
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




$this выводите внутри класса и увидите что в нём.

string(3) выводит, потому что CMS - строка, в которой 3 символа Подмигивание (КЭП)


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
muravey
Отправлено: 13 Мая, 2013 - 16:16:37
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Нашел причину, прогнал данные через цикл и каким то образом
добавляется пробел в конце



PHP:
скопировать код в буфер обмена
  1.  
  2. string(8) "Examples" string(5) "Cms " string(8) "Examples" string(10) "Examples "
  3.  


Потому и сравнение не сработало. Откуда взялся пробел? Весь код перешарил нет его.

trimom убрал и все заработало.

Откуда взялся пробел? Это что какойто баг в OOП PHP?
 
 Top
imya
Отправлено: 13 Мая, 2013 - 16:22:06
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




muravey пишет:


Откуда взялся пробел? Это что какойто баг в OOП PHP?

Радость
Скорее баг в вашем коде


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB