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
Форумы портала PHP.SU :: Версия для печати :: Почему не видит переменную
Форумы портала PHP.SU » » Вопросы новичков » Почему не видит переменную

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

1. ytrewq123 - 01 Марта, 2015 - 16:15:26 - перейти к сообщению
Здравствуйте!
Вот такое не понимание у меня. Мне надо, написать что ничего не случилось, если в базе не нашлось нужного. То есть из первой функции ничего и второй ничего. Мне казалось ерунда. Думал посмотрю если $row нет так и нет. Но никак не получилось. Пришлось делать совсем не логично то есть переменная чему-то равна если не было этого Ифа значит не равна. Но и так не выходит. Ибо не видит он в низу эти переменные. Делал их глобальными ничего. Делал константы вместо них, не видит!!! Не подскажите в чём дело. Вроде пустяк, но ни как не могу сделать.
P.S.На скобки или что-то вроде того не обращайте внимания просто вырвал кусок кода.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (empty($meklee))
  4.     {  
  5.  
  6. function search ($meklee)
  7. {
  8. $q = "SELECT `temaglat`,`enlaceglat`,`vremglat`
  9.                  FROM `temykorokam` WHERE `temaglat` LIKE '%$meklee%' OR `enlaceglat` LIKE '%$meklee%'";
  10.            
  11.                   $result = mysql_query($q);
  12.            
  13.              if (mysql_affected_rows() > 0) {
  14.          
  15.  $X=2;
  16.  
  17.  $roz=mysql_num_rows($result);
  18. }}
  19.  
  20.  
  21. function poisk($meklee)
  22. {
  23. $q = "SELECT `tema_mir`,`enlace_mir`,`laiks_mir`
  24.                  FROM `temy_mir` WHERE `tema_mir` LIKE '%$meklee%' OR `enlace_mir` LIKE '%$meklee%'";
  25.            
  26.             $resultat = mysqli_query($svjaz, $q);
  27.           if (mysqli_affected_rows($svjaz) > 0) {
  28.                
  29.   $XX=3;
  30.  
  31.  $row=mysqli_num_rows($resultat);
  32. }}
  33.  
  34. IF($X!=2 AND $XX!=3)
  35. ECHO’PUSTO’;
  36. }
  37.  
  38.  
2. caballero - 01 Марта, 2015 - 16:24:17 - перейти к сообщению
удивительный быдлокод
3. ytrewq123 - 01 Марта, 2015 - 16:49:57 - перейти к сообщению
Не хочу ничего говорить. Но. Спасибо за oлигофреническое замечание. С кучей аргументов и хоть строкой обратного.
4. Ts.Saltan - 01 Марта, 2015 - 18:13:41 - перейти к сообщению
ytrewq123, почему объявление функций расположено в блоке условия? Объявляйте их заранее, а в условии по надобности вызывайте. Кстати функции только объявляются и нигде не вызываются. А чтоб переменные были видны вне функции - global

caballero пишет:
удивительный быдлокод
Круто
5. ytrewq123 - 01 Марта, 2015 - 19:28:50 - перейти к сообщению
Поверьте, не хочу спорить и комуто что-то доказывать. Быдло, так быдло.
Только ответьте мне на вопрос почему в этих функциях переменная $Z и $ZZ не равны.


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (empty($meklee))
  4.       {  
  5.    
  6.  search ($fun);
  7.  
  8.    
  9.    
  10.  poisk($funn) ;
  11.  
  12.  
  13.    
  14.   IF($X!=2 AND $XX!=3)
  15.   ECHO’PUSTO’;
  16.  }
  17.  
  18.  
6. Tyoma5891 - 01 Марта, 2015 - 19:57:44 - перейти к сообщению
похоже что это все не ваше... Растерялся
7. ytrewq123 - 01 Марта, 2015 - 20:06:37 - перейти к сообщению
Да нет, вроде моё. Просто хотел спросить. Если людям не надо видеть функцию, а её обявления что бы ответить на вопрос так пусть блеснут умом.
Но речь не об этом.
О верхнем коде. Ну не видит и всё. Как уже писал не глобально ни даже константу. Почему не пойму.
8. exlant - 01 Марта, 2015 - 21:17:24 - перейти к сообщению
если переменные объявлены внутри функции. то их и не должно быть видно!

основы основ
PHP:
скопировать код в буфер обмена
  1.  
  2. $z;
  3. function one(){
  4.     global $x;
  5.     $x = 1;
  6.     $GLOBALS['z'] = 1;
  7.    
  8. }
  9. function two(){
  10.     global $x;
  11.     $x = 2;
  12.     $GLOBALS['z'] = 2;
  13.    
  14. }
  15.  
  16. one();
  17. echo $x,"<br>"; // выведет 1
  18. echo $z,"<br>"; // выведет 1
  19. two();
  20. echo $x,"<br>"; // выведет 2
  21. echo $z; // выведет 2
  22.  

а вы свои переменные глобальными как делаете?
9. ytrewq123 - 01 Марта, 2015 - 21:50:35 - перейти к сообщению
Спасибо вам. Ну да также и делаю их. Но теперь я понял где была ошибка. Но стало ещё страшнее. Если позволите вопрос. А если константу засунуть в функцию, она будет видна без вызова функции. Что бы с ней работать?
10. exlant - 01 Марта, 2015 - 22:01:28 - перейти к сообщению
встречный вопрос! а зачем так делать?
11. ytrewq123 - 01 Марта, 2015 - 23:00:40 - перейти к сообщению
Да нее. Просто один эксперимент хотел сделать. Но что-то перехотелось. Может потом. Спасибо Вам за ответы.

 

Powered by ExBB FM 1.0 RC1