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 :: Версия для печати :: 1 != 1
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » 1 != 1

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

1. folibis - 28 Апреля, 2011 - 01:13:23 - перейти к сообщению
Вот такая мистика происходит у меня на сайте:
PHP:
скопировать код в буфер обмена
  1. global $value1;
  2. $value1 = '1';
  3.  
  4. compareValues();
  5.  
  6. function compareValues()
  7. {
  8.         global $value1;
  9.         $value2 = '1';
  10.         if($value1 == $value2) echo 'Ok';
  11.         else echo 'No';
  12. }

Выводится всегда «No». Делал уже все что угодно, применял intval, strcmp, результат один: 1 != 1. В чем тут собака порылась - не пойму
2. altermann - 28 Апреля, 2011 - 02:44:50 - перейти к сообщению
То что вы выложили, у меня вывело "Ок". Там значение первой переменной у вас нигде не перебивается?
3. Stierus - 28 Апреля, 2011 - 09:15:05 - перейти к сообщению
С использованием глобал переменных сложно избежать мистики Улыбка Но в вашем случае мистики не должно быть .... не пробовали в случае false выводить обе переменные в кавычках (что бы пробелы, табы и тд отследить) + их типы (хотя у вас сравнение типы не учитывает)? о_О
4. EuGen - 28 Апреля, 2011 - 09:22:40 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1.  
  2. user@gate:~/stats$ php -v
  3. PHP 5.3.2-1ubuntu4.7 with Suhosin-Patch (cli) (built: Jan 12 2011 18:36:08)
  4. Copyright (c) 1997-2009 The PHP Group
  5. Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
  6. user@gate:~/stats$ cat test.php
  7. <?php
  8. global $value1;
  9. $value1 = '1';
  10.  
  11. compareValues();
  12.  
  13. function compareValues()
  14. {
  15.         global $value1;
  16.         $value2 = '1';
  17.         if($value1 == $value2) echo 'Ok'."\n";
  18.         else echo 'No'."\n";
  19. }
  20. user@gate:~/stats$ php test.php
  21. Ok
  22. user@gate:~/stats$
  23.  
5. Мелкий - 28 Апреля, 2011 - 09:30:33 - перейти к сообщению
Смотрите var_dump($value1, $value2,$value1 == $value2); перед условием.
Представленный пример даже по типу переменных отработает в "ок".
6. Viper - 28 Апреля, 2011 - 09:32:05 - перейти к сообщению
folibis ваш код рабочий. Есть подозрение на корявизну кодировки файла.
7. destus - 28 Апреля, 2011 - 15:08:13 - перейти к сообщению
folibis пишет:
Вот такая мистика происходит у меня на сайте:
PHP:
скопировать код в буфер обмена
  1. global $value1;
  2. $value1 = '1';
  3.  
  4. compareValues();
  5.  
  6. function compareValues()
  7. {
  8.         global $value1;
  9.         $value2 = '1';
  10.         if($value1 == $value2) echo 'Ok';
  11.         else echo 'No';
  12. }

Выводится всегда «No». Делал уже все что угодно, применял intval, strcmp, результат один: 1 != 1. В чем тут собака порылась - не пойму

точно ==стоит? Если === и value1 string, value2 int, то будет NO писать)

 

Powered by ExBB FM 1.0 RC1