Если у меня есть условное заявление
if (A > B || B > C)
Какое утверждение будет оцениваться первым: «A> B» или «B> C»?
Применяется ли тот же порядок к математическим выражениям:
$var = $value1 + $value2 + $value3;
Спасибо,
Алекс.
В PHP скрипт оценивается слева направо, если не используются круглые скобки, если они используются, он вычисляется в логическом порядке. Кроме того, помните, что ни один код в блоке условия if (включая оценщики) не запускается после первого оператора с ошибкой. Этот пример выполнит только второй эхо $ a, и его значение будет 0
$a = 0;
if(1 == 0 && $a = 5)
{
echo $a;
}
echo $a;
Этот оператор будет иметь значение $ 5 и будет выполнять оператор. Интересно, что причина того, что код будет выполняться, заключается в том, что присваивание $ a = 5 в if устанавливает $ a = 5 или «5 = 5».
if(1 == 1 && $a = 5)
{
echo $a;
}
Также обратите внимание, что есть еще и еще, если заявления, если вы не смотрели в него
$a =2
if($a == 2)
{
}
else if($a > 2){
echo ">".$a;
}
else{
echo "its none of the conditions";
}
Причина, по которой вы используете два знака равенства, заключается в сравнении нечувствительного к типу значения с одним равенством, которое будет присваивать значение. Есть также три равенства, которые сравнили бы тип и пример значения. Это оценило бы как true:
$a = 2;
if($a == "2")
Следующее не будет верно, потому что вы сравниваете строку с целым числом.
$a = 2;
if($a === "2")
Что касается ваших вторых вопросов, то же самое относится и к операторам String, но ваш синтаксис недействителен.
Этот пример сказал бы Hellow World:
echo "hellow"."world";
Этот пример НЕ ДЕЛАЕТ КОНКАТЕНЦИЮ (хотя он бы добавил, если бы они были целыми числами)
echo "hellow" + "world";
Других решений пока нет …