[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться.
andreisurger
Здравствуйте. Пытаюсь учить php? но кое что не могу понять. Есть скрипт:
Файл vars.php:

<?php
$a++;
?>


Файл index.php:

<?php
$a = 0;
for ($I=0; $I < 3; $I++)
{
require("vars.php");
echo $a;
}
?>

не могу понять почему в результате выполнения выводит 123.



Спустя 9 минут, 55 секунд (8.01.2011 - 12:37) phpdreamer написал(а):
require подключает код файла vars.php (на свое место в index.php)
Получается код:
<?php
$a = 0;
for ($I=0; $I < 3; $I++)
{
$a++; //инкремент $a = $a + 1
echo $a; //вывод в браузер
}
?>

В цикле из трех итераций над переменной $a проводят операцию "инкремент", увеличивая ее значение на единицу. В том же цикле выводят новое значение этой переменной (сначала 1, потом 2, потом 3)

Спустя 1 минута, 37 секунд (8.01.2011 - 12:39) andreisurger написал(а):
Так в условии for переменная I а не a.?

Спустя 10 минут, 15 секунд (8.01.2011 - 12:49) Ангелочек написал(а):

<?php
$a = 0;
for ($I=0; $I < 3; $I++)
{
$a++;
echo $a; echo '<br>';
}
?>



так наглядней будет

Спустя 3 минуты, 28 секунд (8.01.2011 - 12:53) andreisurger написал(а):
Вы меня не поняли. Насчет цикла и итерации я понял. Но в условии for стоит переменная I а не a? Почему же выводится 1-2-3

Спустя 3 минуты, 10 секунд (8.01.2011 - 12:56) Ангелочек написал(а):
ну и что. цикл проходит и $a тоже увеличивается. чё тут непонятного.

Спустя 2 минуты, 51 секунда (8.01.2011 - 12:59) andreisurger написал(а):
В условии for не сказано что $a<3. Тогда переменная a должна бесконечно увеличиваться?

Спустя 5 минут, 5 секунд (8.01.2011 - 13:04) Ангелочек написал(а):
нуу капец. причём тут условие цикла. цикл проходит 3 раза. за каждый проход $a увеличивается на единицу. Ну как ещё обьяснить.

Спустя 1 минута, 45 секунд (8.01.2011 - 13:05) VolDroN написал(а):
по идеи цикл будет выполняться 3 раза. Значит и $а выведится только 3 раза. Т.к. цикл остановиться когда i=3.

разберите свой код.
открывается файл -> выполняется цикл и в результате выводит 1-> т.к. условие в цикле ещё верно, то цикл выполняется ещё раз, выводится уже 2 -> т.к. условие опять верно, выводится 3 -> цикл останавливается по условию

Спустя 4 минуты, 9 секунд (8.01.2011 - 13:10) Игорь_Vasinsky написал(а):
переменная $i (необходима чтобы задать правило для цикла) используется для работы цикла for.

а в цикле проходит работа над перемнной $a/

Спустя 3 минуты, 21 секунда (8.01.2011 - 13:13) andreisurger написал(а):
Все понял. Спасибо. Еще один вопрос. $a++ это пост инкремент. То есть сначала значение переменной выводится, а затем увеличивается на 1. так как начальное значение переменной а = 0 то должно выводиться 0-1-2 в соответствии с условием цикла. Или я не прав?

Спустя 2 минуты, 12 секунд (8.01.2011 - 13:15) andreisurger написал(а):
То есть какая переменная стоит в условии for не имеет значения?

Спустя 4 минуты, 5 секунд (8.01.2011 - 13:19) Ангелочек написал(а):

$a=3
$c = ++$a ($c станет равна 4)

$a=3
$c = $a++ ($c станет равна 3)

Спустя 25 секунд (8.01.2011 - 13:20) Игорь_Vasinsky написал(а):
имя переменной для работы цикла не имеет значение , просто эт как внегласная договорённость или просто использование $i по привычке как в мануале - иногда $j - а вообще не важно.

По поводу 0-1-2-3

$a уже равно 0, а в цикле происходит увеличение на 1 покак по условию $i не станет = 3, отсюда и вывод 1-2-3

Спустя 52 секунды (8.01.2011 - 13:21) Игорь_Vasinsky написал(а):
Ангелочек ну чё ты его путаешь. щас не об этом.

Спустя 7 минут (8.01.2011 - 13:28) andreisurger написал(а):
$a=3
$c = ++$a ($c станет равна 4)

$a=3
$c = $a++ ($c станет равна 3)
Это понятно. Пре и пост инкремент.
По поводу 0-1-2-3 я так понял что это условие по другому можно записать так и оно будет идентично:

<?php
for ($a=0, $a < 3, $a++)
{
echo $a;
}
?>

Спустя 12 секунд (8.01.2011 - 13:28) Ангелочек написал(а):
Игорь_Vasinsky
никого я не путаю. Он про пост инкремент спрашивал вот я и ответил

Спустя 1 минута, 48 секунд (8.01.2011 - 13:30) Ангелочек написал(а):
andreisurger
а ты поэксперементируй - попробуй сам разобраться. Это ж прописные истины.

Спустя 6 минут, 6 секунд (8.01.2011 - 13:36) andreisurger написал(а):
Странно этот код выдает 0-1-2. Ничего не понимаю???

Спустя 2 минуты, 51 секунда (8.01.2011 - 13:38) Игорь_Vasinsky написал(а):
<?php for ($a=0, $a < 3, $a++){ echo $a;} ?>

тут естсно будет вывод 0-1-2-3

т.к. $a в условии цикла = 0

Спустя 2 минуты, 9 секунд (8.01.2011 - 13:41) andreisurger написал(а):

<?php
$a=0;
for ($i=0; $i < 3; $i++)
{
$a++;
echo $a;

}
?>

Здесь а тоже равно 0 но выводится 1-2-3

Спустя 4 минуты, 40 секунд (8.01.2011 - 13:45) andreisurger написал(а):
и при чем если сделать пост и пре инкремент ничего не меняется?

Спустя 4 минуты, 59 секунд (8.01.2011 - 13:50) Игорь_Vasinsky написал(а):
слушай я даж уже не знаю как объяснить -

$a = 0 вне выполнения цикла - поэтому при выводе уже начинает увиличиваться от первоночального значения.

$i - в условиях цикла и поэтому при выводе первночальное значение 0

Спустя 2 минуты, 27 секунд (8.01.2011 - 13:53) andreisurger написал(а):
Все понятно. Спасибо. Буду учить дальше. Интересно, но сложно. Тем более с моими гуманитарными мозгами.

Спустя 3 минуты, 51 секунда (8.01.2011 - 13:57) Игорь_Vasinsky написал(а):
обращайся. молодец что с начала начинаешь - а то некоторые в дебри лезут без азов.

Спустя 1 минута, 31 секунда (8.01.2011 - 13:58) andreisurger написал(а):
Спасибо. Буду стараться.

Спустя 2 минуты, 38 секунд (8.01.2011 - 14:01) andreisurger написал(а):
Я уже прочитал пару книг по php. Потом как то забросил из-за того что ничего не понятно было. Сейчас опять взялся за изучение. Решил попробовать через интернет университет. Вроде бы понятнее стало.

Спустя 34 минуты, 58 секунд (8.01.2011 - 14:36) Игорь_Vasinsky написал(а):
просто нужна практика паралельно с теорией. так же начинал

Спустя 17 минут, 53 секунды (8.01.2011 - 14:54) andreisurger написал(а):
так вот практически и птаюсь разобраться. Теперь с массивами сложности. Особенно с многомерными. из одномерных вроде понятно как информацию вытащить, с помощью foreach, а из многомерных?

Спустя 5 минут, 36 секунд (8.01.2011 - 14:59) andreisurger написал(а):
Был бы математический склад ума наверное проще было бы разобраться.

Спустя 5 минут, 47 секунд (8.01.2011 - 15:05) Игорь_Vasinsky написал(а):
не..тут аналитический склад нужен.

я не сталкивался с выводом из многомерных массивов

на я бы зная сколько уровней в массиве - повторил бы комбинацию с foreach

Спустя 3 минуты, 57 секунд (8.01.2011 - 15:09) Игорь_Vasinsky написал(а):

Спустя 2 минуты, 18 секунд (8.01.2011 - 15:11) andreisurger написал(а):
немного не правильно вопрос задал. Имел ввиду как иерархически подойти. Например массив:

<?php
$mas = array ( "1" => "1", "2" =>"2",
array ( "1" => "2", "3" => "3"));
?>

Как из него вытащить значение вложенного массива скажем 3?

Спустя 4 минуты, 26 секунд (8.01.2011 - 15:16) andreisurger написал(а):
Блин не правильно написал.

<?php
$mas = array ( "1" => "1", "2" =>"2",
"3" => array ( "1" => "2", "5" => "kat"));
?>

Как из него вытащить значение вложенного массива скажем kat?

Спустя 3 минуты, 30 секунд (8.01.2011 - 15:19) Игорь_Vasinsky написал(а):
$mas[3][5];

Спустя 2 минуты, 23 секунды (8.01.2011 - 15:22) andreisurger написал(а):
Вот так правильно будет?:

<?php
foreach ($mas as $key=>$index) {

echo $mas [3][5];

}
?>

Спустя 3 минуты, 42 секунды (8.01.2011 - 15:25) Игорь_Vasinsky написал(а):
Цитата
foreach ($mas as $key=>$index) { ... }


это не нужно

ты же напрямую на вложенный массив указываешь

echo $mas [3][5];

Спустя 56 секунд (8.01.2011 - 15:26) Игорь_Vasinsky написал(а):
если уж по твоему то:

<?php
foreach ($mas as $key=>$index)
{
echo $key[5];
}
?>

Спустя 4 минуты, 55 секунд (8.01.2011 - 15:31) andreisurger написал(а):
То есть с помощью echo мы говорим значение какого ключа вывести?

Спустя 10 минут, 16 секунд (8.01.2011 - 15:41) Игорь_Vasinsky написал(а):
echo, print, print_f - это есть функции вывода

Спустя 4 минуты, 25 секунд (8.01.2011 - 15:46) andreisurger написал(а):
<?php
foreach ($mas as $key=>$index)
{
echo $key[5];
}
?>

Это не работает.

Спустя 47 секунд (8.01.2011 - 15:47) andreisurger написал(а):
echo $mas[3][5];

Это работает.

Спустя 1 минута, 49 секунд (8.01.2011 - 15:48) andreisurger написал(а):
<?php
$mas = array ( "1" => "1", "2" =>"2",
"3" => array ( "1" => "2", "5" => "kat"));


foreach ($mas as $key=>$index)
{
echo $mas[3][5];
}

?>


Это работает, но почему то выводит значение 3 раза???

Спустя 15 секунд (8.01.2011 - 15:49) Игорь_Vasinsky написал(а):
ссори $key - ключ элемента, сам элемент $index

но это будет стараться выводит элементы всех подмассивов с ключом 5

<?php
foreach ($mas as $key=>$index) {
echo $index[5];
}
?>


поэтому для конкретного тока:

echo $mas[3][5];


Спустя 6 минут, 1 секунда (8.01.2011 - 15:55) andreisurger написал(а):
<?php
$mas = array ( "1" => "1", "2" =>"2",
"3" => array ( "1" => "2", "5" => "kat"));


foreach ($mas as $key=>$index)
{
echo $mas[3][5];
}

?>


Почему тогда это работает, но выводит значение 3 раза? Выводит так katkatkat????

Спустя 3 минуты, 20 секунд (8.01.2011 - 15:58) Игорь_Vasinsky написал(а):
Цитата
Почему тогда это работает, но выводит значение 3 раза? Выводит так katkatkat????


потому что на первом уровне у массива - 3 ключа(элемента) - а второй уровень тока в одном из ключей, поэтоу цикл foreach - 3 резе и выводит (по количеству ключей в массиве первого уровня.)

Спустя 9 минут, 19 секунд (8.01.2011 - 16:07) andreisurger написал(а):
ничего не понял.
Вот смотрите есть скрипт
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "5" => "kat"));


foreach ($mas as $key=>$index)
{
echo $mas[3][5];
}

?>
Он выводит katkatkatkat.

Спустя 45 секунд (8.01.2011 - 16:08) andreisurger написал(а):
Чтобы вывести kat надо написать так
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "5" => "kat"));


foreach ($mas as $key=>$index)
{
echo $index[5];
}

?>

Спустя 1 минута, 1 секунда (8.01.2011 - 16:09) andreisurger написал(а):
Правильно? Но в массиве есть еще один элемент с ключом 5. Почему скрипт его не выводит. И как вывести их оба???

Спустя 5 минут, 5 секунд (8.01.2011 - 16:14) andreisurger написал(а):
Попробовал сделать вот так

<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "5" => "kat"));


foreach ($mas as $key=>$index)
{
echo $mas[5];
echo "<br/>";
echo $mas[3][5];
}

?>

Он мне вывел
10
kat10
kat10
kat10
kat

А как сделать так, чтобы он вывел
10
kat
???

Спустя 3 минуты, 31 секунда (8.01.2011 - 16:18) Игорь_Vasinsky написал(а):
Цитата
Правильно? Но в массиве есть еще один элемент с ключом 5. Почему скрипт его не выводит. И как вывести их оба???


Нет - не верно.

цикл - foreach - используется для перебора всего массива.

т.е. его используют для того чтобы вывести все элементы массива

если ты хочешь только какоето ввести значение - то используешь ссылку на массив.

есть массив:

$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "5" => "kat"));


чтоб вытащить элемент с ключом 5 - первого уровня массива (а он у нас двумерный - т.к. хотябы один из элементов массива первого уровня - содержит вложенный массив)

надо указать:

echo $mas[5];


если ты хочешь использовать элемент вложенного массива - то зная какой ключ массива содержит вложенный массив - указываешь:


echo $mas[3][5];



Спустя 1 минута, 12 секунд (8.01.2011 - 16:19) Игорь_Vasinsky написал(а):
Цитата
А как сделать так, чтобы он вывел
10
kat
???


тут значения разных массивов - используй ссылки как я написал ранее

Спустя 57 секунд (8.01.2011 - 16:20) andreisurger написал(а):
Понятно. А если я не знаю ключа массива, то как быть?

Спустя 1 минута, 37 секунд (8.01.2011 - 16:21) andreisurger написал(а):
То есть если мы знаем ключи цикл foreach вообще не нужен. И чтобы вывести значение того или иного ключа нужно напрямую вывести переменную, которой присвоен массив?

Спустя 2 минуты, 58 секунд (8.01.2011 - 16:24) Игорь_Vasinsky написал(а):
именно.

Цитата
иного ключа нужно напрямую вывести переменную
- называется ссылка

Цитата
А если я не знаю ключа массива, то как быть?
- не понял вопроса, если ты не знаешь ключа - то значение каого ключа ты хочешь получить? парадокс выходит

Спустя 3 минуты (8.01.2011 - 16:27) Игорь_Vasinsky написал(а):
или ты имеешь ввыду что знаешь что один из ключей одного массива имеет вложенный массив - и именно этот массив (вложенный) ты хочешь вывести или один из элементов этого вложенного массива - но тогда ты должен знать ключ этого вложенного массива, или ты знаешь значение элемента этого массива -и хочешь его вывести - то зачем рыскать по массиву, когда можно просто написать элемент...

запутал ты меня.

Спустя 5 минут, 44 секунды (8.01.2011 - 16:33) andreisurger написал(а):
Скажем так не знаю ключа но знаю его значение. Возьмем тот же самый пример:
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "kat"));



?>
По правилам в данном массиве ключ kat будет 2. То есть я могу вывести значение следующим образом

echo $mas[3][2];

А если в таком массиве
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "tor" => "35", "kat"));

???

Спустя 1 минута, 17 секунд (8.01.2011 - 16:34) andreisurger написал(а):
Блин, что то я сам запутался

Спустя 2 минуты, 44 секунды (8.01.2011 - 16:37) andreisurger написал(а):
Цитата
или ты имеешь ввыду что знаешь что один из ключей одного массива имеет вложенный массив - и именно этот массив (вложенный) ты хочешь вывести или один из элементов этого вложенного массива - но тогда ты должен знать ключ этого вложенного массива

Я не знаю ключа вложенного массива и ключа элемента вложенного массива.

<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10", array ( "1" => "2", "tor" => "35", "kat"));
?>

Спустя 57 секунд (8.01.2011 - 16:38) andreisurger написал(а):
Такая ситуация может возникнуть?

Спустя 14 минут, 53 секунды (8.01.2011 - 16:53) Игорь_Vasinsky написал(а):
ты путаешь:

формируя массив:

$mas = array(
"1" => "qw",
"5" => "as"
);

в этом примере: ключи это: 1 и 5, элементы qw и as

[quote]А если в таком массиве[/quote
]<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "tor" => "35", "kat"));
?>



ща.. надо повторить, почитать..

Спустя 2 минуты, 59 секунд (8.01.2011 - 16:56) hellmin написал(а):
Ну если я уловил мысли собравшихся, то тут надо проходить foreach($array as $key=>$value) и в цикле применить ветвление... что-то вроде этого if(is_array ($value)). Другими буквами
foreach($array as $key=>$value)
{
if(is_array ($value))
{
echo $key; // Это ключ
print_r($value); // А это массив
}
}

Спустя 2 минуты, 54 секунды (8.01.2011 - 16:59) Игорь_Vasinsky написал(а):
вообщем изучай вот это

http://php.su/learnphp/datatypes/?array

Спустя 23 секунды (8.01.2011 - 16:59) andreisurger написал(а):
hellmin
Подробнее, а то я запутался вообще.

Спустя 4 минуты, 48 секунд (8.01.2011 - 17:04) andreisurger написал(а):
Объясни пожалуйста по русски смысл кода

foreach($array as $key=>$value)
{
if(is_array ($value))
{
echo $key; // Это ключ
print_r($value); // А это массив
}
}

Я так понял что мы перебираем массмв $array где ключ равен значению.
и если не пойму что такое is_array???

Спустя 2 минуты, 44 секунды (8.01.2011 - 17:07) Игорь_Vasinsky написал(а):
он не правильно понял....

is_array — Функция определяет, является ли переданный аргумент массивом.

он тебе показал как определить какой из элементов первого массива является массивом.

а задача другая - вывести элемент второго массива - не имеющего ключа.

Спустя 1 минута, 42 секунды (8.01.2011 - 17:08) andreisurger написал(а):
Про функции пока рано. Я до них еще не добрался. Мне бы с массивами разобраться.

Спустя 1 минута, 33 секунды (8.01.2011 - 17:10) hellmin написал(а):
Ну если я хоть что-то верное написал... то к примеру чтобы вывести значение вложенного массива с ключом [3] надо сделать, что-то вроде этого.
<?php
$mas = array ( "1" => "1", "2" =>"2",
array ( "1" => "2", "3" => "3"));

foreach($mas as $key=>$value) // проходим весь массив по-элементно
{
if(is_array ($value)) // если текущий элемент является массивом
{
echo $value[3]; // Тут выводим то что искали
}
}


?>

Спустя 3 минуты, 40 секунд (8.01.2011 - 17:14) andreisurger написал(а):
Прочитал вашу ссылку, но только 1 часть, потому что дальше идут функции при работе с массивами. А до них еще рановато. Сначала надо в постом разобраться. Так вот там написано, что вывести элемент многомерного массива можно также как и одномерного. а именно по ключу.

Спустя 1 минута (8.01.2011 - 17:15) Игорь_Vasinsky написал(а):
hellmin
да нет. у элемента нет ключа - вот тогда как?

Спустя 1 минута, 16 секунд (8.01.2011 - 17:16) andreisurger написал(а):
Но в данном массиве мы не знаем ключа.

<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "tor" => "35", "kat"));
?>

Спустя 1 минута (8.01.2011 - 17:17) hellmin написал(а):
Ну и какой нужно вывести?

Спустя 41 секунда (8.01.2011 - 17:18) Игорь_Vasinsky написал(а):
Но в данном массиве мы не знаем нет ключа.


Спустя 27 секунд (8.01.2011 - 17:18) andreisurger написал(а):
Или в этом не знаем двух ключей:
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10", array ( "1" => "2", "tor" => "35", "kat"));
?>

Спустя 1 минута, 2 секунды (8.01.2011 - 17:19) andreisurger написал(а):
Цитата
Ну и какой нужно вывести?

kat

Спустя 36 секунд (8.01.2011 - 17:20) andreisurger написал(а):
Сам запутался и других запутал.

Спустя 2 минуты, 27 секунд (8.01.2011 - 17:22) andreisurger написал(а):
Пойду немного воздухом подышу, и голову проветрю. Потом продолжим.

Спустя 43 минуты, 27 секунд (8.01.2011 - 18:06) andreisurger написал(а):
Прогулялся, подумал и ничего не придумал.

Спустя 5 минут, 38 секунд (8.01.2011 - 18:11) andreisurger написал(а):
Кажется понял. Данный массив
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "tor" => "35", "kat"));
?>
по другому можно записать так
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"3" => array ( "1" => "2", "tor" => "35", "2" => "kat"));
?>
А данный
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10", array ( "1" => "2", "tor" => "35", "kat"));
?>
так
<?php
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"6" => array ( "1" => "2", "tor" => "35", "2" => "kat"));
?>
То есть я изобразил здесь ключи которые должны быть. Наверное?

Спустя 1 час, 15 минут, 42 секунды (8.01.2011 - 19:27) hellmin написал(а):
$mas = array ( "1" => "1", "2" =>"2", "5" => "10",
"6" => array ( "1" => "2", "tor" => "35", "2" => "kat"));

Тут "2" => "kat" , даже если не указать ключ, он все равно будет равен 2. Это легко посмотреть функцией var_dump()
var_dump ($mas);

Спустя 2 часа, 10 минут, 17 секунд (8.01.2011 - 21:37) andreisurger написал(а):
Понятно. Спасибо вам. Вроде бы в массивах более менее разобрался. Теперь буду функции штудировать.

Спустя 2 минуты, 41 секунда (8.01.2011 - 21:40) andreisurger написал(а):
Там вообще темный лес для меня.

Спустя 30 минут, 52 секунды (8.01.2011 - 22:11) alex12060 написал(а):
Чтобы понять, выполни этот скрипт:

<?php
$a = $a++;
$a = $a++;
$a = $a++;

echo $a;
?>


Просто ты вызываешь цикл, он каждый раз подключает варс и прибавляет к переменной а по 1, поэтому и выводится)

$i and $a - разные вещи.

Спустя 50 минут, 26 секунд (8.01.2011 - 23:01) andreisurger написал(а):
Цитата
Чтобы понять, выполни этот скрипт:

<?php
$a = $a++;
$a = $a++;
$a = $a++;

echo $a;
?>



Просто ты вызываешь цикл, он каждый раз подключает варс и прибавляет к переменной а по 1, поэтому и выводится)

$i and $a - разные вещи.


Данный скрипт ничего не выведет. Потому что не указано начальное значение переменной а.

Спустя 1 минута, 14 секунд (8.01.2011 - 23:02) Dron19 написал(а):
Цитата (andreisurger @ 8.01.2011 - 09:39)
Так в условии for переменная I а не a.?

ну и что? ты переменную a то тоже увеличиваешь на единицу каждый раз до тех пор пока Ш не станет равной 3, вот он тебе и выводит ее каждый раз увеличенную на единицу, понятно?

Спустя 1 минута, 45 секунд (8.01.2011 - 23:04) Dron19 написал(а):
в общем вывел он тебе 123 потому что он код выполняется до тех пор пока в условии стоит true

Спустя 2 минуты, 49 секунд (8.01.2011 - 23:07) andreisurger написал(а):
Цитата
ну и что? ты переменную a то тоже увеличиваешь на единицу каждый раз до тех пор пока Ш не станет равной 3, вот он тебе и выводит ее каждый раз увеличенную на единицу, понятно?


Это я уже понял. Раньше уже объяснил VolDroN и Игорь_Vasinsky и Ангелочек

Спустя 1 минута, 22 секунды (8.01.2011 - 23:08) andreisurger написал(а):
Спасибо за объяснения. Просто в книгах непонятно написано. Поэтому и спрашиваю.

Спустя 12 часов, 10 минут, 21 секунда (9.01.2011 - 11:19) andreisurger написал(а):
Всем доброе утро. Сегодня начал изучать функции и уже появились вопросы. Помогите разобраться, пожалуйста. Вроде с определением и вызовом функций разобрался. Но не пойму про аргументы. Особенно про их замену.
Вот пример:

<?php
function
add_lan ($name = "Vasya"){

echo $name;

} // здесь задаем функцию с аргументом $name, которому присвоено значение Vasya

add_lan (); // здесь вызываем функцию.
// то есть в браузере отобразится Vasya


add_lan ("Kolya"); // здесь в браузере отобразится Kolya.
?>

Это все понятно. То есть мы меняем значение переменной $name. Не могу понять на счет передачи по ссылке. Объясните пожалуйста.

Спустя 4 часа, 37 минут, 23 секунды (9.01.2011 - 15:56) andreisurger написал(а):
Неужели никто не объяснит мне передачу аргумента по ссылке?

Спустя 15 минут, 6 секунд (9.01.2011 - 16:11) andreisurger написал(а):
В учебнике описывают такие функции как strstr () или strchr (). Стоит ли их учить? Просто их много очень. Или лучше при необходимости воспользоваться справочником?

Спустя 11 часов, 57 минут, 1 секунда (10.01.2011 - 04:08) MNO121280 написал(а):
Передача значения по ссылке это просто!

Вот смотри есть такой код:


<?php

$a = 1;

$b = $a;

// теперь меняем значение $a

$a = 2;

echo 'значение $a равно: '. $a .'<br />';

echo 'значение $b равно: '. $b .'<br />';

?>


То есть мы просто скопировали в переменную $b значения $a. Но они между собой никак не связаны. Это называется передать по значению.
А теперь другой код:


<?php

$a = 1;

$a = &$b;

// теперь меняем значение $a

$a = 2;

echo 'значение $a равно: '. $a .'<br />';

echo 'значение $b равно: '. $b .'<br />';

$b = 1;

echo '<br /><br />';

echo 'значение $a равно: '. $a .'<br />';

echo 'значение $b равно: '. $b .'<br />';

?>


Теперь они связаны между собой. И если ты меняешь $a то измениться и $b, и наоборот. Это назвается передать значение по ссылке.

Спустя 2 часа, 19 минут, 13 секунд (10.01.2011 - 06:27) twin написал(а):
В учебнике русского языка есть правило, жи ши пишутся с буквой и.
Стоит ли их учить, ведь word и так все показывает?
А еще нафига 2 * 2... есть же калькулятор. Да и попу зачем вытерать, памперсы рулят...

Спустя 3 часа, 43 минуты, 21 секунда (10.01.2011 - 10:11) inpost написал(а):
twin
Ты немного путаешь места. В твоём случае - обязательно, но не в его.

andreisurger
У меня был препод в универе, очень мудрый мужик, всем своим всегда делился, поэтому его направление я знаю очень хорошо. Так вот, он всегда повторял: никогда не надо заучивать информацию, всё равно всё не запомнишь. В голове должны отложиться лишь базовые знания (что делаем и что можно сделать), а все остальное - "надо знать где найти!".
На твоём примере скажу, что ты должен знать, что в ПХП существуют эти функции, и что они делают приблизительно, так же должен ориентироваться, что "str" - говорит, что операция идёт со строками. А вот когда на практике будешь встречаться с поставленной задачей - открываешь справочник и перечитываешь уже известный тебе код, читаёшь нюансы и комментарии пользователей (особенно полезно на php.net).
Я вот так и не смог выучить на память: mysql_fetch_assoc, но сделав десяток сайтов (каждый раз вручную пишу, не копи-пастю) само как-то запомнилось. Сейчас для меня проблема написать: mysql_real_escape_string... вроде так =)

Спустя 1 час, 22 минуты, 35 секунд (10.01.2011 - 11:33) andreisurger написал(а):
Насчет передачи значения по ссылке все равно сложновато. Но попробую поэксперементировать и думаю разберусь.
А насчет заучивания думаю inpos прав. Со временем многое запомнится, с опытом.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.