|
|
|
|
|
для: Владимир55
(30.01.2012 в 12:00)
| | Тут я так понимаю, проблема в $IfModifiedSince - нужно проверить, чтобы оно не равнялось 0, если $Las <=0, это вполне возможно, тогда такого условия будет не достаточно, так как $IfModifiedSince >= $Las вернет 1, не смотря на то, что обе переменные равны 0.
<?php
$IfModifiedSince = 0;
$Las = 0;
echo ($IfModifiedSince >= $Las);
echo "<br />";
echo $IfModifiedSince;
?>
|
| |
|
|
|
|
|
|
|
для: Владимир55
(30.01.2012 в 12:00)
| | . | |
|
|
|
|
|
|
|
для: cheops
(30.01.2012 в 11:45)
| | То есть, условие такое: "Если $IfModifiedSince существует и при этом больше-равно $Las).
Но если переменная $IfModifiedSince больше-равна $Las, то она существует. А если так, то не является ли логическим эквивалентом запись
<?php
...
if ($IfModifiedSince >= $Las) die ();
...
?>
|
Или в РНР есть ещё какая-то тонкость? | |
|
|
|
|
|
|
|
для: Владимир55
(30.01.2012 в 11:32)
| | Дело в том, что у оператора && приоритет меньше, чем у >=, поэтому читать выражение следует так
<?php
...
if ($IfModifiedSince && ($IfModifiedSince >= $Las)) die ();
...
?>
|
| |
|
|
|
|
|
|
| В типовом модуле обнаружил странное выражение для оператора сравнения. В сокращенном виде это выглядит так:
<?php
$IfModifiedSince = false;
if (isset($abc)) $IfModifiedSince = 110;
if (isset($abcd)) $IfModifiedSince = 120;
if ($IfModifiedSince && $IfModifiedSince >= $Las) die ();
|
В последней строке имеет место конъюнкция двух переменных с одинаковыми именами.
Как такое возможно? | |
|
|
|
|