Проблема приоритета оператора в Perl и PHP

PHP:

$a = 2;
$b = 3;
if($b=1 && $a=5)
{
   $a++;
   $b++;
}
echo $a.'-'.$b;


$a = 2;
$b = 3;
if($a=5 and $b=1)
{
   $a++;
   $b++;
}
echo $a.'-'.$b;

Вывод 6-16-2 . Я не понимаю 1 здесь.

Perl:

$a = 2;
$b = 3;
if($b=1 && $a=5)
{
     $a++;                                                                            
     $b++;
}
print $a.'-'.$b;


$a = 2;
$b = 3;
if($a=5 and $b=1)
{
    $a++;
    $b++;
}
print $a.'-'.$b;

Вывод 6-66-2 , я не понимаю здесь второй 6 .

Кто-нибудь знает причину?

На самом деле я знаю, что && имеет более высокий приоритет, чем и , но я все еще сомневаюсь, зная это заранее.

ОБНОВЛЕНИЕ

Теперь я понимаю PHP, что насчет Perl?

8
задан Je Rog 3 August 2011 в 13:40
поделиться