Контакты

Php примеры для начинающих. Простые примеры php

От автора: Носящий гордый титул «номер один», PHP – самый популярный язык в среде разработчиков. Хотя сейчас многие предпочитают разные языки. Ваш покорный слуга, например, наиболее комфортно себя чувствует при разработке в среде ASP.NET. Однако по причине огромного успеха WordPress все больше и больше разработчиков решают расширить свои горизонты и изучить еще один язык.

В череде следующих нескольких статей я собираюсь создать «тренировочный режим» для всех нас. Если вы намеревались учиться, но всерьез еще не занимались этой идеей, теперь самое время! И наоборот, тех из вас, кто уже ниндзя в PHP, я почтительно прошу активно участвовать и помогать советами всем остальным. Если вы получили пользу от дюжин учебников этого сайта, потратьте несколько минут и вернитесь назад, в секцию примечаний. Это будет ваш ресурс, содержащий все необходимое для PHP. Каждую среду я буду размещать тренировочную статью и список ресурсов, помогающих объяснить принципы, раскрытые в статье. Разгадка в том, что я здесь тоже, относительно говоря, новичок, как и все прочие. Мы можем мотивировать друг друга учиться так быстро и эффективно, как только можно.

Итак, почему бы не поучиться у новичка? Попытайтесь не думать обо мне как обучающем вас. Считайте эти статьи совместным усилием сообщества, где мы все учим друг друга. Я буду учиться у многих из вас так же, как вы — у меня.

Что такое PHP?

PHP – аббревиатура словосочетания Hypertext Preprocessor (гипертекстовый препроцессор). В то время как другие языки, вроде Javascript, работают на стороне клиента, ваш PHP-код будет выполнять команды на уровне сервера. Он незаметно работает с HTML. Более того, ваш PHP может быть встроен в HTML, и наоборот. Помните, что неважно, насколько сложен ваш PHP, в конце концов будет получаться простой HTML.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Почему я предпочитаю использовать PHP?

HTML на 100% статичен. Используя PHP в коде, мы можем создавать динамические сайты, которые изменяются в зависимости от заданных условий. Опирающийся на первоклассное сообщество, этот язык с открытым исходным кодом с годами доказал, что является одной из лучших опций для динамических веб-приложений.

Безусловно. Я был приятно удивлен, когда начал обучение. Если вы обладаете хотя бы самым скромным объемом знаний о ASP.NET, Perl, Javascript или C#, то окажется, что вы быстро улавливаете основы синтаксиса.

Что нужно, чтобы начать работать?

Вам нужно иметь следующий установленный в компьютер софт, если хотите начать работать.

Web Browser (браузер)

Text Editor (текстовый редактор)

WAMP, MAMP

Да, должен признать, что необходимо знать некоторые акронимы (звуковые аббревиатуры). «WAMP» расшифровывается как «Windows-Apache-MySQL-PHP». Это – проект с открытым исходным кодом, который позволит нам загрузить все, что нужно для начала работы в одном дистрибутиве. Если вы пользователь Windows, посетите WampServer.com . С другой стороны, если вы пользуетесь Mac (MAMP), вам необходимо нанести визит на Mamp.info

Основы

Для того, чтобы информировать сервер о том, что мы работаем с PHP, вам необходимо использовать следующий синтаксис при добавлении PHP в ваши HTML-документы:

Мы начинаем и заканчиваем каждую инструкцию PHP соответственно «». Вернитесь обратно к своему коду и добавьте следующее:

Обратите внимание, что во втором примере мы записали все в одну строку. Запомните, PHP не зависит от символов-разделителей. Здесь мы говорим серверу «echo» (отобразить), или писать строку «This is PHP in action» (Это — PHP в действии) на нашу страницу. Каждая инструкция в нашем коде должна завершаться точкой с запятой в конце. Если HTML может снисходительно отнестись к случайно пропущенной скобке, то PHP, к сожалению, нет. Если вы не будет использовать правильный синтаксис, то получите ошибку. В случае, когда мы имеем только одну инструкцию, мы технически могли бы выйти из трудного положения, убрав точку с запятой. Но это очень важно — всегда следовать самым лучшим практикам.

Определяем переменные

Мы можем довольно легко установить значения переменных. Вместо использования ключевого слова «var» (C# и Javascript), или «dim» (VB), мы можем объявлять переменную в PHP, используя символ префикса «$». Допустим, что я хочу присвоить предыдущую строку переменной, названной «myVariable». Я бы написал так…

Этот пример произведет точно такой же результат, как и предыдущий. Однако в этом сценарии мы присвоили строку переменной, а затем «echoed» (отобразили) вместо нее переменную. А что, если я бы захотел соединить содержимое переменной и другую строку?

Используя точку, мы можем комбинировать переменные и/или строки.

Вставка комментариев в код

Если вы знакомы с CSS и Javascript, то найдете, что комментирование в PHP фактически такое же.

Комбинирование HTML с нашим PHP

Помните то, о чем уже говорилось — PHP и HTML могут работать в сочетании. Только то, что мы уже в середине предложения PHP, не означает, что мы не можем вставлять такие элементы, как разрыв строки или тэг strong.

This text is bold."; ?>

Определение вашей первой функции Function()

Создание функций в PHP почти идентично их реализации в Javascript. Основной синтаксис таков…

Если бы мы хотели создать функцию, которая отображает («echo») 10 плюс 5, мы могли бы написать…

Мы создаем простую функцию, которая даст выходные данные «15″. Мы вызываем функцию с помощью «addNumbers(). В этом случае мы не используем никаких параметров. Давайте посмотрим, как можно реализовать их, чтобы сделать нашу функцию более общей.

Теперь наш код уже гораздо гибче. Создав функцию «addNumbers()», мы добавили два параметра — $firstNumber и $secondNumber. Функция будет просто отображать сумму этих двух переменных. При вызове функции нам придется передавать два числа — addNumbers(10, 5). В общей ситуации значения этих переменных могли бы быть взяты из пары текстовых полей.

От автора: Вполне достаточно для этой недели. Если эти понятия вам все еще не ясны, вернитесь к началу и прочтите статью еще раз. Также удостоверьтесь, что отметили следующие ресурсы, которые помогут вам в будущем понять синтаксис PHP. Пожалуйста, не стесняйтесь задавать вопросы или размещать советы в секции комментариев. Я обязательно помещу ваши мысли в Части 2. Если вам понравилась эта статья, пожалуйста, разместите ее на своем любимом сайте социальных сетей!

Перевод и редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

Есть в веб-программировании такие дисциплины, основы которых обязан знать любой человек, связанный с всемирной паутиной. Поэтому, так или иначе, а изучать PHP и MySQL вам придется. А если не хотите, то жадность все равно заставит:

Такой вопрос могут задавать лишь те, кто совсем не знаком со спецификой построения веб-пространства и ее современной основой. Любой мало-мальски сведущий в программировании человек скажет, что эти две дисциплины являются на сегодняшний день главенствующими во всемирной паутине. А это значит, что почти весь интернет построен на основе PHP и MySQL :


Хотя в наше время значение PHP немного уменьшилось. И все из-за большого количества движков, которые (по иронии ) также построены на основе этого языка.

В современном веб-мире под движками понимают любую систему управления контентом (Content management system, CMS). Большая часть из них написана на PHP и MySQL.

Каждая CMS представляет собой программную основу, снабженную пользовательским интерфейсом. Его инструментарий во многом облегчает процесс администрирования сайта. Но тогда зачем заниматься изучением PHP с нуля? Ведь можно просто зайти в административную часть ресурса и произвести все манипуляции с помощью встроенных в нее средств.

Начнем с того, что не у многих хватает терпения, времени или сил заниматься изучением PHP и MySQL . К этому человек должен прийти сам. Но тот, кто решится постигнуть эти дисциплины, получит:

  • Востребованную профессию – на рынке труда толковые программисты всегда были нарасхват. Но даже неопытные новички с хорошими теоретическими знаниями PHP и небольшим опытом в веб-программировании смогут найти работу с достойной оплатой;
  • Удаленную работу – для того чтобы заниматься программированием не обязательно рано вставать, добираться на работу и соблюдать дресскод. Все это можно оставить за порогом, и создавать программный код, сидя дома в комнатных тапочках;
  • Экономию денег – если вы являетесь владельцем сайта, то конечно знаете, что услуги профессиональных веб-программистов стоят дорого. А для начинающего свое дело в интернете дорога каждая копейка. Самостоятельное обучение MySQL и PHP позволит сэкономить средства и пустить их в нужное русло.

Как уже отмечалось, большинство современных движков работают на основе PHP . Хотя их отказоустойчивость и находится на высоком уровне, но влияние человеческого фактора никто не отменял. Поэтому код CMS иногда ведет себя не так, как задумал веб-программист.

И чтобы исправить эту ошибку, нужно искать специалиста, платить ему большие деньги. А потом оказывается, что вся загвоздка была лишь в одной строчке кода, которую можно было легко исправить даже со знанием лишь базовых основ PHP .

  • Интересное хобби – веб-программирование это не только средство зарабатывания денег или их экономии. Это еще и увлекательное занятие, которое совмещает в себе как техническое начало, так и творческую составляющую.

Изучение PHP и MySQL для многих может стать средством самовыражения.

PHP относится к скриптовым языкам программирования. Чаще всего он применяется для создания веб-приложений и веб-сервисов. Данный язык поддерживается большинством хостингов в интернете. На его основе написана основная часть динамических сайтов.

В динамическом сайте в отличие от статического, созданного лишь на html, содержимое всех страниц формируется в ответ на пользовательский запрос. Структура ресурса формируется на основе файлов шаблона, а содержимое (чаще всего) загружается из баз данных.


Популярность PHP объясняется его следующими характеристиками:

  • Поддержка большинства популярных СУБД (Систем Управления Базами Данных );
  • Автоматическая отправка заголовков HTTP ;
  • Встроенная поддержка работы с сессиями и cookies;
  • Средства работы с удаленными файлами;
  • Поддержка XForms (формы, созданные на основе XML );
  • Приближенность синтаксиса PHP к языку C;
  • Отсутствие строгой типизации – типизация переменных осуществляется динамически.

Типы данных – это то, с чего начинают изучение PHP

  • Поддержка ООП (объектно-ориентированного программирования );
  • Большой набор суперглобальных (предопределенных) массивов, предназначенных для работы с веб-пространством.

Что такое MySQL?

MySQL – это свободно распространяемая СУБД от компании Oracle . Вместе с бесплатной версией ведется разработка и коммерческих выпусков под заказ. Именно благодаря этому все новые разработки корпорации обязательно внедряются и в бесплатные выпуски СУБД .

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

Подсветка синтаксиса

Code completion (подсказки идентификаторов в редакторе кода)

Предупреждения об ошибках

Рефакторинг кода (переделка кода)

А также большое количество других возможностей. Существует множество отличных IDE , поддерживающих PHP.

4. Попробуйте PHP-frameworks

Вы можете многое узнать о PHP, просто экспериментируя с PHP-фреймворками. Такие фреймворки, как CakePHP или CodeIgniter , позволяют быстро создавать приложения PHP, даже если вы в нем не эксперт. В каком-то смысле они – дополнительные подпорки, которые показывают вам, каким образом должно выглядеть приложение PHP, и демонстрируют полезные концепции программирования (вроде отделения логики от дизайна и т.д.).

Возражение: лично я не советую новичкам пользоваться фреймворками. Сначала выучите основы.

5. Научитесь DRY

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

Разделение на уровни ваших приложений – это ничто иное, как разделение различных компонентов кода на части. В будущем это даст вам возможность легко изменять код.

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

<% echo "Hello world"; %>

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

Именование – не только для вашего собственного удовольствия. Нет ничего хуже, чем продираться сквозь бессмысленные условные обозначения другого программиста. Помогите самому себе и другим, используя для своих классов и свойств имена, имеющие смысл.

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

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

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

и пристроив его где-нибудь на сервере, вы сможете незамедлительно узнавать все об окружении своего сервера. Тем не менее, множество новичков поместит файл, содержащий phpinfo() в webroot сервера. Это чрезвычайно небезопасная практика, и если чей-то пытливый ум получит доступ, он может потенциально сглазить ваш сервер. Убедитесь, что phpinfo() находится в безопасном месте, а в качестве дополнительной меры удалите его, как только закончите.


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

Если в приложении есть места для входа пользователей, вы всегда должны предполагать, что кто-то попробует ввести сомнительный код. (Мы не подразумеваем, что ваши пользователи — плохие люди. Это просто здравый смысл.) Отличный способ уберечь свой сайт от хакеров – всегда инициализировать свои переменные для защиты сайта от XSS-атак. На PHP.net есть пример должным образом закрытой формы с инициализированными переменными:

17. Храните пароли зашифрованными

Многие новички в PHP часто сбрасывают деликатные данные, такие как пароли, в базу данных, не применяя шифрование. Рассмотрите использование MD5 для шифрования паролей перед тем, как выкладывать их базу данных.

Echo md5("myPassword"); // renders -

Возражение: Тем не менее, помните, что хэши MD5 уже давно скомпрометированы. Безусловно, они скорее безопасны, чем нет, но с помощью гигантской “спектральной таблицы” хакеры могут восстановить ваш хэш. Для обеспечения еще большей безопасности обдумайте возможность добавления «соли» (помех в виде «белого шума»). «Соль» – это обычно дополнительный набор символов, которые вы присоединяете к пользовательской строке.

18. Используйте инструменты визуализации баз данных

Если вам кажется сложным планировать и изменять базы данных для своих PHP-приложений, можно было бы рассмотреть возможность использования инструмента визуализации баз данных. Пользователи MySQL могут работать с DBDesigner и MySQL Workbench для визуального дизайна своих баз данных.


19. Используйте буферизацию вывода

Буферизация вывода – это простой способ очень сильно улучшить качество и скорость вашего PHP-скрипта. Без буферизации вывода ваш скрипт будет показывать HTML на странице так, как он обрабатывается – частями. Добавление буферизации вывода позволяет PHP хранить HTML как переменную и посылать его на браузер единой порцией.

Для активирования функции буферизации вывода просто добавьте ob_start() как здесь в начале файла.

Возражение: Хотя это и не требуется, обычно считается хорошей практикой просто взять и прикрепить функцию “ob_end_flush();” к концу документа. P.S. Хотите также сжать HTML? Просто смените “ob_start();”на “ob_start(‘ob_gzhandler’)”;

untitled

20. Оберегайте свой скрипт от атаки SQL-injection

Если вы не отделяете (escape) символы, использующиеся в строках SQL, ваш код уязвим для атаки SQL-injection. Избежать этого можно, используя либо функцию mysql_real_escape_string (прим. перев. для отделения символов), либо подготовленные операторы SQL (prepared statements).

Вот пример mysql_real_escape_string в действии:

$username = mysql_real_escape_string($GET["username"]);

И подготовленного оператора:

$id = $_GET["id"]; $statement = $connection->prepare("SELECT * FROM tbl_members WHERE id = ?"); $statement->bind_param("i", $id); $statement->execute();

21. Попробуйте ORM

Если вы пишете объектно-ориентированный PHP, то можете использовать OR-mapping (ORM). ORM позволяет вам преобразовывать данные между реляционными базами данных и языками объектно-ориентированного программирования. Короче говоря, ORM дает возможность работать с базами данных таким же образом, каким вы работаете с классами и объектами в PHP.

Для PHP есть множество ORM-библиотек, таких как Propel, а также ORM встроен в фреймворки PHP, такие, как CakePHP.

22. Кэшируйте страницы, управляемые базой данных

Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:

// TOP of your script $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 hours // Serve from the cache if it is younger than $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // start the output buffer // Your normal PHP script and HTML content here // BOTTOM of your script $fp = fopen($cachefile, "w"); // open the cache file for writing fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file fclose($fp); // close the file ob_end_flush(); // Send the output to the browser

Этот кусок кода использует кэшированную версию страницы, если с момента ее генерации прошло менее 2 часов.

23. Используйте систему кэширования

Если вы хотите более надежную систему кэширования, есть несколько готовых скриптов кэширования для PHP, которые могут быть более полными, чем вышеприведенный пример.


24. Проверяйте достоверность данных Cookie

Данные Cookie, как любые другие данные, передаваемые по Сети, могут быть вредоносными. Вы можете проверять данные cookie либо при помощи thehtmlspecialchars() , либо mysql_real_escape_string() .

25. Используйте системы кэширования статических файлов

Помимо использования систем кэширования баз данных вроде Memcached, вы также могли бы попробовать систему шаблонов, чтобы увеличить производительность своих PHP-приложениях. Smarty — надежная система шаблонов, имеющий встроенное кэширование.

26. Профилируйте свой код

Профилирование своего кода при помощи такого инструмента, как xdebug , может помочь вам быстро опознавать узкие места и прочие потенциальные проблемы в своем PHP-коде. Некоторые IDE типа Netbeans так же имеют возможность профилировать PHP.

27. Кодируйте согласно стандартам

Если уж вы скинули с себя путы изучения PHP, то можете начать учиться кодировать согласно стандарту. Между разными стандартами существуют отличия, поэтому обнаружить таковой и придерживаться его, в конце концов, будет способствовать логичности вашего кодирования.

28. Выполняйте функции вне циклов

Вы получаете проблему производительности, когда включаете вызовы функций внутрь циклов. Чем больше ваш цикл, тем длительнее будет задержка исполнения. Сэкономьте время и поместите функцию вне цикла в отдельной строке кода.


Примечание редактора: Представьте себе это следующим образом. Попробуйте удалить как можно больше операций из цикла. Вам действительно нужно создавать эту переменную для каждого повторения цикла? Вам действительно нужно использовать каждый раз эту функцию? Конечно, нет.:)

29. Не копируйте добавочные переменные

Некоторые любят пробовать делать свой код более привлекательным с помощью копирования предопределенных переменных в промежуточные переменные. Это уже чересчур и потенциально может удвоить размер памяти вашего скрипта. На Google Code есть плохие и хорошие примеры использования переменной:

$description = strip_tags($_POST["description"]); echo $description;

Echo strip_tags($_POST["description"]);


Возражение: В ответ на комментарий об «удвоении размера памяти», это, в действительности, обычное неверное представление. PHP реализовывает управление памятью“copy-on-write”. По существу, это означает, что вы можете присвоить значение для такого количества переменных, какое захотите, не волнуясь о том, что данные будут реально копироваться. Бездоказательно, что вышеприведенный «хороший» пример может сделать код более понятным, и я очень сильно сомневаюсь, что он хоть немного быстрее.

30. Обновите PHP до самой последней версии

Хотя это кажется весьма здравой мыслью, многие не делают апгрейд PHP настолько часто, как следовало бы. Между PHP 4 и PHP 5 существует много улучшений. Следите за тем, чтобы на вашем сервере было обновленное программное обеспечение.

31. Сократите количество запросов к базе данных

Так или иначе, чем больше вы можете снизить количество запросов к базе данных, тем выше будет производительность вашего PHP-скрипта. Существуют такие инструменты, как Stace (Unix) и Process Explorer (Windows), которые дают вам возможность находить дублирующие процессы с тем, чтобы их можно было бы объединить.


32. Не бойтесь просить помощи

Только человеческой натуре свойственно желание скрыть тот факт, что мы не так много знаем на определенную тему. Никому не нравится быть придурком! Но как можно научиться, не задавая вопросов? Не стесняйтесь пользоваться форумами, IRC, StackOverflow , чтобы задавать вопросы бывалым PHP-разработчикам. На вебсайте PHP есть страница получения помощи по PHP .

Есть свои собственные возражения? Уверен, что есть! Давайте поспорим.

Перевод и редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

Объект похож на функцию, но он гораздо сложней. Объект можно назвать совокупностью нескольких функций и переменных, объеденённых одним именем.

Понять что такое объект легче всего на примере, но тут сначала придётся набраться немного терпения и осилить теорию.

Дело в том, что объекты создаются на основе классов, а классы может писать сам программист, а может работать с классами, написанными другими программистами.

Теперь давайте создадим класс.

Class TestClass { // Это тело класса. }

В PHP мы используем слово class , чтобы объявить класс. Имя класса чувствительно к регистру.

От пустого класса никакого смысла нет, поэтому давайте добавим что-то в него. Класс может содержать переменные и функции. Переменные называются свойствами класса, а функции являются методами.

Class TestClass { public $message = "Hi!"; function sayHello() { echo "Hello!"; } }

Перед объявлением переменной мы видим слово public , это определение области видимости для нашего свойства. По английски public значит общественный, так что из названия понятно, что это свойство класса общедоступно. Об области видимости подробнее мы поговорим позже. Пока терпение и грызём текущую теорию.

Теперь в нашем классе TestClass есть переменная $message со значением "Hi!", эта переменная является свойством класса, и функция sayHello, которая является методом класса.

Итак, мы имеем класс. Теперь на основании этого создадим объект при помощи оператора new .

Class TestClass { public $message = "Hi!"; function sayHello() { echo "Hello!"; } } $govorilka = new TestClass();

Наш объект является как бы копией класса.

Следующий шаг - это использование объекта. Для доступа к свойствам и методам объекта используется оператор -> .

Чтобы получить доступ к свойству $message объекта $govorilka нужно просто написать $govorilka->message. Обратите внимание, что перед названием свойства message мы уже не ставим знак $ .

Доступ к методу осуществляется также, но нужно не забывать о скобках в конце метода, ведь мы имее дело с обычной функцией.

Вот пример обращения к свойству и методу созданного нами объекта:

message; echo "
"; $govorilka->sayHello();

Мы можем менять значения свойств.

message = "Здравствуйте."; echo $govorilka->message; echo "
"; $govorilka->sayHello();

На основании одного класса можно создать сколько угодно объектов.

message = "Здравствуйте."; echo $govorilka->message; echo "
"; $govorilka->sayHello(); echo "
"; // Создаём второй объект $govorilka2 = new TestClass(); echo $govorilka2->message;

Как мы видим, изменение свойтва объекта $govorilka не привело к изменению свойства класса TestClass, и второй объект соответствует классу, экземпляром которого он является.

Стоит отметить, что объекты часто называют экземплярами класса, так что запомните этот термин.

Пока что не совсем понятно, зачем всё это нам надо, эти классы, объекты... Давайте создадим более реалистичный класс и на его примере будем дальше работать.

type \"$this->name\". Описание: $this->description. Цена: $this->price"; } } $Goods = new Goods(); $Goods->printGoods();

Обратите внимание на псевдопеременную $this , это зарезервированная в PHP переменная, которая используется для доступа к свойствам класса внутри его кода.

То есть, чтобы обратиться к свойству $name класса Goods из его же метода мы использовали конструкцию $this->name.

Теперь давайте немного увеличим пример, усложнением это назвать трудно. Итак:

type. Название: \"$this->name\". Описание: $this->description. Цена: $this->price."; } } $Goods = new Goods(); $Goods->type = "книга"; $Goods->name = "Война и мир"; $Goods->description = "Толстая книга из нескольких томов"; $Goods->price = "543.26"; $Goods->printGoods();

Конечно, нет смысла всё делать таким образом. Обычно объект получает уникальный идентификатор товара и берёт все данные из базы MySQL.

id = $id; $this->type = "книга"; $this->name = "Война и мир"; $this->description = "Толстая книга из нескольких томов"; $this->price = "543.26"; } function printGoods() { echo " ID товара: $this->id. Тип товара: $this->type. Название: \"$this->name\". Описание: $this->description. Цена: $this->price."; } } $Goods = new Goods(124); $Goods->printGoods();

В этом примере слишком много нового.

Первое, обратите внимание на название метода __construct() . Это зарезервированное слово в PHP и такой метод запустится автоматически при создании объекта. Такие методы называются конструкторами.

Когда мы создавали новый объект Goods(124), мы передали конструктору число 124. Конструктор, по легенде:), получил из базы данных соответствующий товар и определил свойства объекта в соответствии с информацией из базы данных.

Свойства объекта у нас имеют область видимости protected , то есть защищённую. К такому свойству мы не можем обратиться напрямую из клиентского кода.

Клиентский код - это код, который использует класс, объект или функцию. Это важный термин, запомните его.

Вот пример попытки обратиться из клиентского кода к защещённому свойству:

price;

Этот пример вернёт ошибку: "Cannot access protected property Goods". Так и должно быть, мы обращаемся туда, куда нет доступа.

Резюме

Итак, что мы узнали на этой странице:

  • Что такое класс. Зачем нужен класс. Как создать класс при помощи зарезервированного слова class .
  • Что такое свойства и методы класса.
  • Как при помощи оператора new создать объект какого-то класса.
  • Как из объекта получить доступ к свойствам и методам класса при помощи конструкции -> .
  • Как изменять свойства класса из объекта.
  • Область видимости свойств и методов. Как ограничить область видимости при помощи слова protected .
  • Как обратиться к свойству метода в классе при помощи псевдопеременной $this .
  • Создание конструкторов при помощи метода __construct() .

Это только первый шаг в освоении объектов. По большому счёту ещё не совсем понятно, зачем всё это нужно. Но картина с объектами станет ясной несколько позже, пока наберитесь терпения.

Следующее, что нам нужно изучить - это наследование в PHP. В этой части мы уже не только изучим механизм наследования, но и сможем привести действительно актуальный пример использования классов и объектов.

Из Зандстры

стр. 51 - проверка передаваемого методу аргумента на соответствие типу класса (можно и проверить на массив).

стр. 56 - оператор instanceof (англ. экземпляр), проверяет соответствие левого аргумента типу объекта в правом аргументе.

Интернет в современном мире занимает всё более прочные позиции. Лет 15 назад для доступа к сети было нужно дорогое оборудование и немалые деньги на оплату счетов. Сейчас в Интернет может за копейки попасть любой человек, имеющий хотябы мобильный телефон. Всё больше услуг и сервисов переходят в электронную форму. Из средства общения и обмена информацией Интернет превращается в удобный инструмент для ведения бизнеса и зарабатывания денег.

Ежедневно миллионы пользователей посещают свои любимые сайты, качают почту, файлы или новости, играют в онлайн-игры, ведут дела компании или просто общаются в чатах, блогах и форумах. Большинство из этих пользователей никогда не задумывались как всё это работает, кто создаёт новые сайты и сервисы, как и с помощью чего.

Этот электронный учебник предназначен для тех, кому недостаточно просто серфить по просторам Сети. Для тех, кто хочет научиться создавать собственные сайты и быть на волне последних течений программирования и дизайна.

Общие принципы

До начала изучения языка нужно однозначно определиться с терминологией и пониманием общих принципов работы сети Интернет. Начнём с принципов работы сети и сайтов.

Сеть Интернет состоит из огромного количества соединённых между собой компьютеров, маршрутизаторов и прочего железа, нужного для правильной работы. Каждый элемент сети Интернет (узел) обладает уникальным описателем - IP-адресом. Зная IP-адрес узла можно попробовать подключиться к нему, а имея небольшие навыки можно определить кому этот адрес принадлежит и в каком регионе мира находится. IP-адреса принято записывать в виде четырёх групп цифр, разделённых точками, например

192.168.100.003 или 10.10.0.123

Согласитесь, запомнить адреса всех часто посещаемых страниц - задачка не из лёгких. Поэтому в сети Интернет существуют специальные сервера DNS (Domain Name Resolution), на которых хранятся списки сопоставления IP-адресов и символьных имён. Именно благодаря эти серверам пользователь всегда попадает по нужному IP-адресу, набрав в браузере только имя странички.

После того, как мы ввёли в строку браузера имя нужной странички, браузер самостоятельно получает из DNS IP-адрес нужного сервера и посылает по этому адресу специальный запрос на получение странички (HTTP-запрос). Работающая на сервере специализированная программа (т.н. Web-сервер) обрабатывает этот запрос и возвращает в браузер требуемую страницу.

Очевидно, что все действия по отображению страницы можно однозначно разделить на две категории: выполняемые на стороне клиента (клиентский код или front-end ) и выполняемые на стороне сервера (серверный код или back-end ). Причем сервер ничего не знает о текущем состоянии клиента, а клиент - о текущем состоянии сервера. При разработке алгоритмов обмена надо всегда помнить об этом и своевременно передавать нужные данные, описывающие состояние или требуемое действие.

В зависимости от места применения различаются и средства реализации частей. На стороне клиента как правило используется только HTML, JavaScript (AJAX), CSS и Flash. Разработчики серверной части менее стеснены в средствах, т.к. большая часть существующих языков позволяет создавать или описывать HTML-страницы. Наиболее широко распространённы сейчас Java, Perl, PHP, Python, Ruby, C# и VB.NET. Каждый из них имеет свои сильные и слабые стороны, поэтому разработчик должен сделать выбор исходя из стоящих перед ним задач.

Почему именно PHP?

Существует большое количество языков, которые можно использовать при создании веб-сайтов. Некоторые языки существуют давно и успешно применяются (или уже не применяются). Некоторые языки ещё очень молоды и широкого распространения пока не получили. В последнее время PHP выбился в лидеры по популярности, чему есть несколько причин:

  1. Простота. Язык очень легко воспринимается, особенно начинающими программистами.
  2. Скорость разработки. Благодаря простоте и интуитивной понятности, PHP позволяет очень быстро создавать довольно сложные сайты.
  3. Наличие библиотек Существует огромное количество готовых примеров и библиотек классов. Созданы и проверены сотни библиотек, существенно упрощающих жизнь разработчика.
  4. Поддержка Практически любой сервер в Интернете поддерживает PHP
  5. Безопасность PHP позволяет создавать действительно защищённые сайты благодаря встроненной поддержке шифрования данных при хранении и передаче.

Однако за свои преимущества PHP платит некоторыми органичениями. Например, использовать PHP для доступа к системным функциям очень неудобно по сравнению с Perl или Python (поэтому многие сисадмины так любят Perl).Есть ещё несколько ограничений, о которых мы поговорим при изучении соответствующих разделов.

Сейчас PHP прочно занимает своё место среду других web-языков. Если Вы в будущем не планируете заниматься созданием огромных порталов, поисковых систем и особо защищённых сайтов, то PHP - лучший выбор для начинающего web-программиста.

Однако, оставим лирику, пора начать изучение.

Понравилась статья? Поделитесь ей