Приоритет выполнения операций

_RVK_

Новичок
Приоритет выполнения операций

Как должен работать такой код?
PHP:
<?php
$array = array(1,1,2,2,2,2,3,3,3); 
$m=0;
foreach ($array as $month) {
      if($m==($m=$month)) continue;
      print $month.'<br>';
}
?>
Пожалуйста, кому не лень, потестируйте на своих серверах, и покажите результаты.
 

SiMM

Новичок
А зачем делать такие замысловатые конструкции и думать о том, что где-то это может не работать, когда можно обойтись без них?
 

Profic

just Profic (PHP5 BetaTeam)
Такой код по большому счету - хождение по лезвию бритвы :) Ибо зависит от внутренностей ZE.
В зависимости от (...) может как ничего не вывести, так и вывести 123.
 

_RVK_

Новичок
SiMM
Разве я мог предположить что где то это может работать иначе.
Бресь Сергей
А операционка? У меня под 4.3.0 под 2к тоже самое, а под FreeBSD другое.

Плиз, гляньте кто нибудь под фришкой и линухом...

-~{}~ 03.12.04 14:55:

Profic
Ну это же что там что там PHP. Должно работать одинаково.
 

SiMM

Новичок
Автор оригинала: Diesel
SiMM
Разве я мог предположить что где то это может работать иначе.
А предполагать и не надо - надо быть проще ;)
Profic
Ну это же что там что там PHP. Должно работать одинаково.
Однако интерпретация выражений может быть построена по другому. Малейшего доработки напильником будет достаточно, чтобы у тебя всё приложение развалилось - оно тебе надо?
 

Profic

just Profic (PHP5 BetaTeam)
Diesel
php-то там и там. но вот в разных версиях php (или например при налиции zend optimizer-а), а тем более ZE результат может отличаться.

ЗЫ. я бы на месте php вообще бы ничего не выводил :)
 

iliah

Новичок
php 4.3.8
$ php -f file.php
1<br>2<br>3<br>

mod_php 4.3.9
http://localhost/file.php
не выводит ничего

???

OC linux
 

_RVK_

Новичок
У кого есть хостинг на агаве? Гляньте там. С чем это может быть связанно?

А вообще мне лень писать вместо
PHP:
      if($m==($m=$month)) continue;
PHP:
      if($m==$month)  {
           $m=$month;
           continue;
      } else {
           $m=$month;
      }
но видимо придется :(

-~{}~ 03.12.04 15:04:

А предполагать и не надо - надо быть проще
Так я как раз и хотел как проще :)
 

_RVK_

Новичок
я бы на месте php вообще бы ничего не выводил
Ну ты злой :)

Нет, ну должна же быть совместимость, кроссплатформенность, переносимость.... а так это беспридел какой-то!
 

SiMM

Новичок
Проще - не значит мудрёнее ;)
PHP:
$array = array(1,1,2,2,2,2,3,3,3); 
$m=0; 
foreach ($array as $month) { 
      if ($m==$month) continue;
      $m = $month;
      print $month.'<br>'; 
}
Апаздал ;)
 

Profic

just Profic (PHP5 BetaTeam)
Diesel
пойми, что в ДАННОМ КОНКРЕТНОМ СЛУЧАЕ все зависит от многих факторов, вплоть до того, а каких компилятором это все собиралось :)

это то, что называется "implementation specific behavour" в C :)
а может и вообще "undefined behaivuor" :)
 

_RVK_

Новичок
Profic
А не случится ли так что выражение 2+2*2 будет давать в одном месте 6 а в другом 8 ;)
 
Сверху