А вопрос следующий - почему подобный цикл работает???
<?php
$db = mysql_connect("localhost","sw","1");
mysql_select_db("firstbd",$db);
$result = mysql_query("SELECT * FROM marki",$db);
while ($myrow = mysql_fetch_array($result))
{
echo "Машина N -".$myrow['id']."<br>";
echo $myrow['marka']."<br>";
echo $myrow['model']."<br>";
echo $myrow['year']."<br>";
}
?>
Переменная $myrow до начала цикла нигде не объявлялась, а получается так, что объявляется в условии цикла, так же быть не должно? По идее д.б ошибки, но их нет почему???
Спустя 23 минуты, 46 секунд (7.08.2010 - 08:06) Michael написал(а):
В php как только переменной что то присваивается - вот она и определена. Дальше ей уже можно пользоваться везде где угодно.
Спустя 48 минут, 14 секунд (7.08.2010 - 08:54) SnowWind написал(а):
да это то всё понятно, Но не везде!
Это мы легко щас провери например так:
Вывод на экран следующий --> такой переменной не существует
Это мы легко щас провери например так:
<html>
<head></head>
<body>
<?php
if (isset($z))
{
$z=0;
echo "переменная z = ".$z;
}
else
{
echo "такой переменной не существует";
}
?>
</body>
</html>
Вывод на экран следующий --> такой переменной не существует
Спустя 8 минут, 33 секунды (7.08.2010 - 09:03) Basili4 написал(а):
SnowWind
Вторая поверка не корректна Вы сначачала проверяете наличие перменной а затем её инициализируете т.е. объявляете.
В перво случае в условии цикла происходит объявление а затем и проверка
Вторая поверка не корректна Вы сначачала проверяете наличие перменной а затем её инициализируете т.е. объявляете.
В перво случае в условии цикла происходит объявление а затем и проверка
Спустя 33 минуты, 49 секунд (7.08.2010 - 09:37) SnowWind написал(а):
Basili4
Тогда что получается, действительно можно объявлять переменные в условиях циклов и функций?
А тогда почему следующий код не зацикливается?
или так
Тогда что получается, действительно можно объявлять переменные в условиях циклов и функций?

А тогда почему следующий код не зацикливается?
while ($d=0)
{
$d=0;
echo $d;
}
или так
while ($d=0)
{
echo $d;
}
Спустя 2 минуты, 26 секунд (7.08.2010 - 09:39) DedMorozzz написал(а):
(: а так:
while($d==0){
$d=0;
echo $d;
}
Спустя 49 минут, 49 секунд (7.08.2010 - 10:29) SnowWind написал(а):
DedMorozzz а если так, то тут уже другой смысл.
В 1ом примере мы присваиваем значение, а в этом приравниваем, тут-то цикл будет 100%, но почему в 1ом случае нет?
В 1ом примере мы присваиваем значение, а в этом приравниваем, тут-то цикл будет 100%, но почему в 1ом случае нет?
Спустя 4 минуты, 35 секунд (7.08.2010 - 10:34) Michael написал(а):
Цитата |
но почему в 1ом случае нет? |
while ($d=0)
{
$d=0;
echo $d;
}
1) зашли в условие цикла
2) присвоили $d=0
3) выражение вернет 0
4) имеем: while(0) - что не выполнится, т.к. 0 приведется к false
Спустя 18 минут, 55 секунд (7.08.2010 - 10:53) SnowWind написал(а):
Такой код ///
Приводит к такому выводу ///
Notice: Undefined variable: d in z:\home\sw.ru\www\index.php on line 18
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: d in z:\home\sw.ru\www\index.php on line 20
12345678910
///
Появляется ошибка, но всёравно вывод есть, а как он определил, что повышение на еденицу должно начаться с 0 ?
<html>
<head></head>
<body>
<?php
$b=7;
while ($d<10)
{
$d++;
echo $d;
}
?>
</body>
</html>
Приводит к такому выводу ///
Notice: Undefined variable: d in z:\home\sw.ru\www\index.php on line 18
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: d in z:\home\sw.ru\www\index.php on line 20
12345678910
///
Появляется ошибка, но всёравно вывод есть, а как он определил, что повышение на еденицу должно начаться с 0 ?
Спустя 9 минут, 43 секунды (7.08.2010 - 11:02) Michael написал(а):
php заметил ошибку вывел тебе предупреждение, а для себя установил переменную скорее всего в null - пустое значение.
А оператор ++ сначала преобразовывает свою переменную в число => null как раз станет нулем, а потом нарастил.
В общем, никогда так не делай.
А оператор ++ сначала преобразовывает свою переменную в число => null как раз станет нулем, а потом нарастил.
В общем, никогда так не делай.
Спустя 10 минут, 25 секунд (7.08.2010 - 11:13) Michael написал(а):
Вижу ты только начал изучать. Если нет книги, можешь начать читать тут