Переменные в PHP
Обычный пользователь редко задумывается над смыслом того, что называется "памятью" компьютера. Для пользователя ясно одно - чем больше памяти, тем мощнее компьютер, и тем больше информации в нем можно хранить. Это верно в случае, если речь идет о дисковом пространстве, где хранятся все данные, записанные в виде файлов.
Но у компьютера есть и другая память, динамическая. В динамической памяти компьютер хранит временную информацию, доступную лишь в данный момент работы. Выключили компьютер или же программу - все данные динамической памяти стираются, если мы не использовали команду "Save" ("Сохранить").
Как же хранится информация в динамической памяти во время текущего сеанса работы? Очевидно, что для этого нужны специальные "хранилища" - ячейки памяти, способные удерживать информацию и выдавать ее по первому требованию компьютера. Такие ячейки программисты называют переменными.
Чтобы компьютер (а точнее, программа) имел доступ к этим ячейкам, у них должен быть быть определенный адрес. Во многих языках программирования существует также требование определить размер ячейки и тип информации, которую мы помещаем в ячейку. К счастью, язык РНР свободен от этих требований, и нам остается лишь указать программе-интерпретатору адрес ячейки памяти.
Но как это сделать? Память компьютера состоит из миллионов таких ячеек, и неужели нам нужно знать координаты каждой из них? К счастью, нет. За нас эту работу выполнит интерпретатор, мы лишь должны дать ячейке памяти определенное имя.
Имена можно выбирать произвольно, единственным условием языка РНР является добавление в начало имени переменной значка $. Ну и конечно, следует помнить, что интерпретатор РНР не полиглот, поэтому имена переменных следует писать латинскими буквами. И еще: никогда не используйте пробелы в имени переменной. Интерпретатор воспримет первую часть имени переменной и полностью запутается, не зная, что делать со второй. Ну и последнее - кроме значка $ старайтесь не ипользовать в именах переменных никаких других символов, по крайней мере, на первых порах.
Воспользуемся предыдущим примером, и внесем в него некоторые изменения. Прежде всего, выделим для программы на РНР блок, который открывается тегом <?php и закрывается тегом ?>.
Внутри этого блока определим две переменные, $username и $password, предназначенные, как вы уже догадались по их именам, для хранения информации об имени пользователя и его пароле. Вообще говоря, использование осмысленных имен переменных намного упрощает работу с текстом программы (или, как говорят программисты, с программным кодом). Многие начинающие программисты ленятся давать переменным осмысленные имена, предпочитая называть переменные чем-то вроде $a и $b, но, поверьте моему опыту, очень скоро эта лень сменяется здоровым трудолюбием. Не отчаивайтесь, если вы не очень сильны в английском! Имена $polzovatel и $parol также вполне пригодны для программирования на РНР.
Вот так выглядит фрагмент нашего кода, в котором мы определили переменные $username и $password.
| <html> |
| <title>Иерусалимский компьютерный колледж</title> |
| <body> |
| <p>You entered:</p> |
| <?php |
| $username = "Игорь"; |
| $password = "абракадабра"; |
| echo "<p>Имя пользователя = " . $username . "</p>"; |
| echo "<p>Пароль = " . $password . "</p>"; |
| ?> |
| </body> |
| </html> |
Но что это за знак равенства и имена в кавычках?
Дело в том, что язык РНР позволяет нам, определив имена переменных, тут же поместить в них нужную информацию. Не забывайте, что интерпретатор по этим именам находит адреса нужных ячеек в памяти, ну и тут же наполняет их заданным содержимым. Удобно, не так ли? Теперь в памяти компьютера находятся два слова "Игорь" и "абракадабра", и мы в любой момент можем их оттуда извлечь.
Несколько неожиданным, и на первый взгляд сложным выглядит этот код! Не будем впадать в уныние и разберем его "по косточкам"!
Все, что находится за пределами красных тегов - это из языка HTML, с ним мы уже знакомы, а если что забылось - откройте страничку нашего интернет-учебника и найдите нужный раздел!
А вот то, что внутри красных тегов - и есть сам РНР, но в сочетании с HTML, что выглядит не первый взгляд немного неожиданно. Но только на первый взгляд, потому что, если вы сравните этот код с нашей первой программкой, то увидите, что в обоих случаях оператор echo требует заключать выводимое на экран слово (или предложение) в кавычки.
Так что неожиданного в конструкции: echo "<p>Имя пользователя = "? Тег из <p> из языка HTML? Но мы помним, что этот тег используется для печатания с новой строки. Но тогда почему он заключен в кавычки вместе со всем остальным выражением?
Стоп! Вовсе не со всем, а только с той частью, которая выводится целиком, а потом кавычки закрываются на время, появляется имя переменной, с двумя точками, спереди и сзади, ну а в конце мы снова видим закрывающий тег </p>, и снова в кавычках. И создается совершенно правильное впечатление, что эти кавычки как бы искусственно прерваны переменной $username, а точки стоящие спереди и сзади - это нечто соединяющее воедино разорванную конструкцию.
echo "<p>Имя пользователя = " . $username . "</p>";
И такое бывает... Правда, в других языках программирования для этих целей используется значок & или же просто +, но создатели языка РНР рассудили иначе, и решили воспользоваться точкой как оператором конкатенации (соединения) двух элементов - переменной и текста. Почему? - Не нам судить...
А вот еще одно немаловажное явление, на которое мы должны обратить внимание. Код РНР как бы включает в себя код HTML, "поглощая" в свои кавычки не только слова, но и сами теги подчиненного ему языка. Впрочем, кто и кому подчиняется - это еще вопрос!
А результат работы нашей программы выглядит удивительно красиво!
|