Как я изучал программирование php. Типы данных языка РНР и преобразование данных для чайников. Что такое PHP

Появилась мысль рассказать Вам о языке PHP . Головной сайт разработчиков этого языка http://www.php.net , на нем Вы сможете скачать интерпретатор языка и узнать о языке практически все (для тех кто не боится английского).

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

Сейчас пока не будем ничего говорить о его настройке. Скорее всего Вы пользуетесь уже готовым хостингом с установленным PHP , поэтому его уже настроили за Вас. Квалификация и знания администратора сервера не известны, потому как его настроили трудно сказать. Этот шаг я хочу посвятить именно этому. Моя задача страшно напугать Вас, чтобы при разработке своих программ Вы боялись за всё. Интернет полон мошенниками, хакерами, ламерами и другими компьютерными сущностями:) Ваша программа должна уметь противостоять всем. Она должна справляться с ошибками настройки, которые допустил администратор, она должна адекватно обрабатывать мудреные запросы, которые пытается скормить ей хакер, или ошибочные запросы посылаемые другими. Проще говоря Вы должны научиться разрабатывать программы для Интернета на PHP так, чтобы они были готовы ко всему. Только так можно будет говорить о правильности работы, а главное безопасности ваших данных, сайта и возможно даже всего бизнеса.

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

Первое - это встраивание программы в код HTML страницы. Думаю не секрет для Вас, что PHP файл - это обычный файл HTML со специальными вставками кода на языке очень сильно по синтаксису напоминающем С/С++ и Perl . Так вот вставки кода эти отделяются от HTML документа специальным символами начала кода и его конца ?> :

HTML документ

Hello world на PHP

"; ?>

Опять HTML документ

Знающие люди сразу спросят, а почему именно так? Ведь можно отделять короче, с помощью символов или <% %> .

А я отвечу, вы правы... Но вы заблуждаетесь:) И объясню почему. Такой стиль выделения кода задается специальными опциями в файле конфигурации, а именно опциями short_open_tag это для и опцией asp_tags для <% %> . Из начальной установки "на добро" я полагаю, что администратор настроил ваш PHP мизинцем левой ноги, поэтому не хочу полагаться на качество этой работы. Поэтому говорю просто "выкиньте это из головы", чтобы не обнаружить вдруг, что Ваш навороченный скрипт на PHP не работает вообще.

Второе - контроль ошибок кода. Если настроить интерпретатор PHP так, чтобы он контролировал все возможные ошибки, то Вы сразу же защитите себя от множества подводных камней. За эту настройку отвечают несколько опций error_reporting и display_errors . Первая из них контролирует "глубину" контроля ошибок, а вторая возможность отображения ошибок непосредственно в тело создающегося документа. Для нас продпочтительнее выводить все ошибки, независимо от того, как настроен PHP администратором. В этом случае мы будем получать предупреждение о любом изъяне уже на этапе разработки. Для того, чтобы установить свои значения этих параметров на время работы программы, существует функция ini_set() . Давайте попробуем два варианта программы.

Первый вариант:

Второй вариант:

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

Переменная $i=""

И во втором случае:

Переменная $i=" Notice: Undefined variable: i in /home/www.сайт/1.php on line 4 "

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

У параметра error_reporting есть еще одно значение E_STRICT , которое было введено в версии PHP 5 для еще большей проверки совместимости и работоспособности кода во время работы. Поэтому для совместимости с другими версиями напишем такой код:

")==1) { ini_set("error_reporting", E_ALL | E_STRICT); } else { ini_set("error_reporting", E_ALL); }; ?>

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

Язык программирования PHP - Учебный курс - Савельева Н.В. - 2006.

PHP, в настоящее время, – один из наиболее популярных языков для реализации веб-приложений. Данный курс посвящен изучению его основ. Акцент делается на практическое применение полученных навыков.
Язык PHP был создан для решения конкретной практической задачи в среде интернет (какой именно можно узнать, прочитав первую лекцию курса). Мы тоже постараемся не отвлекаться слишком сильно на теоретические рассуждения, и будем стремиться к решению какой-нибудь конкретной задачи в каждой из лекций. Большинство примеров взяты из реально существующей системы: виртуального музея истории информатики. Первая часть курса посвящена изучению основ синтаксиса и управляющим конструкциям. После этого рассматривается технология клиент-сервер, как основная сфера приложения языка PHP. Затем переходим к изучению наиболее полезных на наш взгляд встроенных функций и решению с их помощью практических задач. Хотя объектная модель в языке PHP не самая богатая, ее принципиальное наличие позволяет естественным образом описывать объектные модели данных. В качестве базовой модели будет рассмотрена модель документа виртуального музея информатики. После этого будет рассмотрен ряд прикладных аспектов: работа с файловой системой, с БД, строками, сессиями, DOM XML - все это позволит рассмотреть ключевые задачи практического использования языка.

PHP, MySQL для начинающих - Энди Харрис - 2005.

Эта книга поможет вам научиться программировать на РНР и создавать базы данных на MySQL. Если вашей целью является написание программ для веб-серверов, то эта книга для вас. Вы узнаете все основные концепции языков программирования, в частности, изучите команды и синтаксис языка РНР. Вы также узнаете, как в современных средах используются данные, кроме всего этого, также обучитесь самому процессу программирования.


Скачать и читать PHP, MySQL для начинающих - Энди Харрис

PHP - Обучение на примерах - Кухарчик А.

PHP - Обучение на примерах - Кухарчик А. - 2004.

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

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

PHP (Hypertext PreProcessor ) – один из самых популярных инструментов веб-программирования на стороне сервера. Работа PHP в самом простом варианте сводится к обработке http запроса клиента. Обработка запроса, в свою очередь, заключается в программном формировании гипертекста в соответствии с параметрами запроса, после чего полученная разметка возвращается клиенту. Когда клиент (интернет браузер) запрашивает обычную статическую интернет страницу (чаще всего с расширением html), сервер в качестве ответа возвращает ему содержимое этой страницу без изменений “как есть”. Если запрашивается php страница, то в процессе обработки запроса содержимое указанной страницы сначала обрабатывается интерпретатором PHP, и только потом результат этой обработки отправляется клиенту.

Другими словами, PHP – это препроцессор гипертекста , что и отражено в его названии. Пре процессор потому что окончательной обработке гипертекст подвергается уже на стороне клиента, результат которой мы видим в окне браузера (процессором гипертекста является уже сам браузер). Можно сказать, что PHP – это генератор гипертекста, поскольку в большинстве случаев его работа – это программная генерация по содержимому базы данных или по любой другой структурированной информации, размещенной на сервере. Аббревиатура выглядит, как PHP, а не как, к примеру, HPP или иначе, поскольку первоначально расшифровывалась как Personal Home Page Tools – инструментарий для создания персональных интернет страниц. Таким образом, первый вариант расшифровки PHP отражал его назначение, а нынешний – принцип работы.

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

  • обработка и извлечение параметров http запросов GET и POST;
  • формирование и отправка http заголовков ;
  • инфраструктура для хранения данных сеанса ;
  • программные сервисы для работы с cookies ;

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


  • работа с файлами по FTP протоколу ;
  • работа с базами данных посредствам ;
  • поддержка
  • поддержка HTTP авторизации ;
  • обмен сообщениями по электронной почте и многое другое.

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

Основы программирования на PHP

Добавление в разметку кода PHP и результат работы препроцессора гипертекста

Программный код PHP добавляется непосредственно в любое место HTML разметки. Самой HTML разметки может и не быть вовсе, а исходный код страницы может быть представлен только фрагментом программы на PHP. В любом случае, для вставки PHP нужно использовать специальный тег и внутри него размещать текст программы. Делается это следующим образом:

код программы ?>

В ходе работы PHP интерпретатора секции заменяются на разметку, формируемую в результате работы размещенного в них программного кода. Для вывода результата работы препроцессора используется оператор echo , аргументами которого могут быть константы, переменные, функции или различного рода выражения, а результатом – текст. Самый простой вариант может выглядеть следующим образом:

"; ?>

Если вы откроете исходный код полученной страницы в браузере, то никакого PHP там уже не будет (если, конечно, на сервере установлен интерпретатор PHP). Смысла в таком использовании оператора echo не особо много. Вся прелесть PHP в том, что формируемый HTML может зависеть от параметров запроса, содержимого базы данных, политики безопасности и многого другого. Анализ и обработка всего этого выполняется с использованием знакомых практически всем , таких как циклы, условия, функции и т.п. Забегая вперед, приведу небольшой пример программы на PHP c использованием цикла и условного оператора, с тем, чтобы начальное представление о препроцессоре гипертекста стало более полным. Следующая программа выводит значения факториала чисел от 1 до 9.

Пример программы на PHP данная разметка сформирована программно интерпретатором PHP."; $f=1; for ($i=1; $i<10; $i++) { if ($i>1) $f=$f*$i; echo $i,"!=",$f,"
"; } ?>

Результат ее работы будет выглядеть в браузере примерно следующим образом:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

Организация приложения из нескольких файлов PHP

Краткий условный или тернарный оператор

Ниже приведен общий вид условного оператора присваивания с использованием тернарного оператора:
$результат = условие? выражение если true: выражение если false;

Пример:
$result = ($a>5) ? $a+$b: $a-$b;

Если a больше 5 , то переменной result присваивается значение a+b , иначе a-b .

Альтернатива оператора if с большим количеством конструкций elseif . Выполнение операторов начинается с той секции case , со значением которой совпадет значение выражения и продолжается по всем последующим case , пока не встретится команда break - завершить выполнение. Секция default – альтернатива секции else в условном операторе.

Switch (выражение ) { case значение 1 : оператор 1 ; case значение 2 : оператор 2 ; case значение 3 : оператор 3 ; default: оператор, выполняемый “по-умолчанию” ; } do тело цикла ; while (условие );

Пример тот же:

$i=2; $f=1; do { $f=$f*$i; $i++; echo $i,"!=",$f,"
"; } while ($i<10);

Более подробно про цикл do ... while читаем .

Перебор элементов в массиве или оператор foreach

Про массивы еще будет сказано несколько слов отдельно, а ниже конструкция для перебора его элементов в цикле:

Foreach (массив as $элемент ) выражение, где что-то делаем с переменной $элемент ;

$values = array("for", "while", "do", "foreach"); echo "Циклы в php:","
"; foreach ($values as $operator) echo $operator, "
";

Циклы и оператор выбора в PHP, также, как и во многих других языках программирования поддерживают инструкции break – досрочного завершения цикла и continue – досрочного завершения текущей итерации цикла (переход к началу цикла). Более подробно про них читайте .

Эта статья не научит вас программировать на PHP, а просто выведет на правильный путь. Я постараюсь рассказать о том, как правильно учить этот язык (в принципе, это будет относиться не только к PHP). Про синтаксис и функции рассказывать я не буду - незачем. Есть статьи, в которых все это очень хорошо изложено. Постараюсь дать наиболее лучшие ссылки на учебники и справки по PHP.

Для начала немного теории.
PHP - это скриптовый серверный язык программирования, код которого вставляется непосредственно в html-код. "Отцом" PHP считается Расмус Лердорф. На данный момент PHP расшифровывается как "PHPHypertext Processor", хотя первоначально был "Personal Home Page". Приведу небольшой пример вставки php в html-код:

<? print "Hello world!"; ?>

В результате сообщение "Hello world!" будет выведено в заголовке окна. Все очень просто. Это, надеюсь, понятно. Двигаемся дальше…

Как вы поняли, это совсем ненужная функция, потому что сообщение "Hello world!" можно вывести и без PHP. Но на php можно сделать гораздо больше, чем вы можете себе представить. Гораздо.

На самом деле, если вы даже еще никогда не пробовали программировать, то будет все равно не тяжело, хотя бы, если вы учили математику в средней школе. Я так думаю. Если сравнивать его с такими языками как Perl или Java, PHP - язык довольно-таки простой. Он был создан для разработки небольших приложений, поэтому ничего сложного в нем нет. Ну, а если вы уже имеете небольшой опыт (например, программируете на языке Pascal), то вам будет еще легче.

Если вы хотите научиться программировать на PHP, просто найдите хороший учебник (а еще лучше купите, если средства позволяют). Самое главное в этом деле - именно хороший, и притом один. Не нужно "распыляться", как делал это я, когда знакомился с этим языком программирования. Один учебник, который вы просто прочитаете для ознакомления, справочник функций, который вы будете использовать при составлении скриптов, и, конечно же, форумы и друзья, знающие PHP. И все! Самое главное в этом деле практика. Не перечитывайте все статьи, которые вам попадутся в Сети - только время зря потеряете (хотя теория, конечно же, нужна). Просто практикуйтесь - это самое главное в этом деле. Что-то не получается - спрашивайте на специализированном форуме. Хочу посоветовать Клуб php-разработчкиков: www.phpclub.ru .

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

Ну, а теперь и ссылки на саму документацию. Самая лучшая документация, на мой взгляд.
Английские:
www.php.net - официальный сайт.
www.php.net/manual/en - документация на английском языке.