<?php
$a=0; $b=1;
if ($a=$b) echo "a и b одинаковы";
else echo "a и b различны";
?>
То выводится, что "а и b одинаковы"
Но когда:
<?php
$a=1; $b=0;
if ($a=$b) echo "a и b одинаковы";
else echo "a и b различны";
?>
То пишет, что "а и b различны"?
<?php
$a=0; $b=1;
if ($a=$b) echo "a и b одинаковы";
else echo "a и b различны";
?>
<?php
$a=1; $b=0;
if ($a=$b) echo "a и b одинаковы";
else echo "a и b различны";
?>
Цитата (volter9 @ 17.01.2015 - 21:08) |
realyhead "=" это оператор присваивания, в первом варианте, из за того что в if'е присваивания произошло успешно и значение является правдивым (1), то if срабатывает, во втором варианте присваивания тоже срабатывает, но значение которое присваевается, оно ложное (0). Используйте '===' (оператор идентичного сравнение) вместо оператора присваивания в данном контексте. Почитайте о преобразование в булев тип в PHP. |
Цитата |
Однако, в большинстве случаев приведение типа необязательно, так как значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует boolean аргумент. |
<?php
for($i=1;$i<=10;$i++){
if ($i==10) echo "$r";
else echo "$n";
}
?>
for($i=0;$i>10;$i++){
echo "+++";}
Цитата (realyhead @ 17.01.2015 - 20:39) |
правильно ли я понимаю работу цикла for:
|
Для $i равное 1 выполнять тело цикла
пока $i меньше либо равно 10.
После выполнения тела цикла $i увеличить на единицу.
Цитата |
Так как на самом деле понять как действует цикл? |
<html>
<head>
<title>PHP</title>
</head>
<body>
<form method="POST" action="<?=$_SERVER['SCRIPT_NAME']?>">
Логин<br><input type="text" name="login">
<br><br>
Пароль<br><input type="password" name="pass">
<br><br>
<input type="submit" name="go" value="Регистрация">
<?php
if (isset($_POST['go']) AND $_POST['login']!=="" OR $_POST['pass']!==""){
echo "Данные приняты";
}
else{
if (isset($_POST['go']) AND $_POST['login']=="" OR $_POST['pass']=="") echo "Не приняты";
}
?>
</form>
</body>
</html>