Здравствуйте, дорогие читатели, а в скором времени и PHP разработчики ;) Сегодняшняя статья блога Site on! посвящена основам PHP: особенностям синтаксиса, выводу данных, переменным, а также работе с ошибками. По ходу цикла уроков по PHP я попытаюсь рассказать вам как можно больше всего интересного и полезного, при этом стараясь не растягивать статьи.
Первое, что вы должны знать, это то, что PHP код всегда должен быть заключён в PHP теги:
<?php PHP код ?>
Также можно использовать:
<?
PHP код //так не рекомендуют
?>
Но, во-первых, такая запись не рекомендуется, во-вторых, для её работоспособности в вашем конфигурационном файле php.ini должны быть включены соответствующие настройки.
Первое, каждая инструкция (выражение) должна заканчиваться точкой с запятой ; Например:
<?php error_reporting(E_ALL); //говорим PHP, чтобы он показывал нам абсолютно все связанные с ним ошибки header('Content-Type: text/html; charset=utf-8'); // кодировка echo 'Наш первый ПХП скрипт работает!<br />'; //выводим текст на страницу ?>
В строке №3 указываем кодировку страницы.
Второе, всё то же самое можно записать и в одну строку, между инструкциями в одной строке можно ставить сколько угодно пробелов, в том числе и вовсе без пробелов:
<?php
error_reporting(E_ALL);header('Content-Type: text/html; charset=utf-8'); echo 'Наш первый ПХП скрипт работает!<br />';
?>
Третье, PHP инструкция может быть разорвана на несколько строк:
<?php echo 'На ш первый ПХ П скрипт работает! <br /> '; ?>
Результат:
Мы наблюдаем, что браузер интерпретировал каждый перевод строки как обычный пробел, чего и требовалось ожидать.
Четвёртое, в PHP как и во всех языках программирования есть комментарии. В PHP их 2 вида: однострочные и многострочные.
// - однострочный комментарий
# - это тоже однострочный комментарий
/*
Ваш
комментарий
*/ - многострочный комментарий
Бытует мнение, что у правильного программиста комментарии должны составлять 30% от всего кода. Однако избыточность комментариев тоже совсем не к чему, не стоит оставлять комментарии по типу «здесь я посмотрел в окно и почесал нос».
Вывод данных в языке программирования PHP осуществляется по средствам двух основных языковых конструкций:
<?php echo 'Наш первый ПХП скрипт работает!<br />'; print 'Это точно такой же текст'; ?>
Разница в том, что по выполнению print возвращает единицу, а echo ничего не возвращает. Если не знаете, как именно вам это использовать, то пользуйтесь echo и не заморачивайтесь, тем более при использовании echo можно делать так:
<?php echo '<h1 align="center">', 'Наш первый ПХП скрипт работает!', '</h1>';
//тоже, но с помощью принта: print '<h1 align="center">'; print 'Наш первый ПХП скрипт работает!'; print '</h1>'; ?>
Так что помимо того, что эхо само по себе короче принта на 1 символ, оно ещё позволяет и более коротко записывать выводимые конструкции. Каждая запятая в примере выше имитирует новый вызов эхо. Другими словами мы трижды вызвали эхо, вместо того чтобы каждый раз писать: echo echo echo, как делали это в случае с принтом.
Между прочим, тоже самое можно было записать и так:
<h1 align="center"><?php echo 'Наш первый ПХП скрипт работает!' ?></h1>
Это я и имел ввиду в предыдущей статье, когда упоминал о том, что PHP - это встраиваемый язык программирования.
Переменные в любом языке программирования служат для хранения внутри себя какой-либо информации, то есть переменная – это наш сосуд. Мы можем положить туда сначала одно, потом убрать первое положить второе, а можем оставить первое и доложить ещё второе (и третье и тд.).
Переменные в PHP начинаются очень символично - со знака доллара $, после которого БЕЗ пробела должна идти либо латинская буква, либо символ подчёркивания (цифра не может быть первым символом в названии переменной). Далее в имени переменной могут присутствовать как латинские буквы, так и цифры, и всё тот же символ подчёркивания. Например:
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$name='Сергей';
$_blog1='Site on!';
echo $name, ' - автор блога ', $_blog1;
?>
Результат:
Имена переменных чувствительны к регистру! То есть $Name, $naMe, $name – три совершенно разных переменных. Если мы в уже существующую переменную захотим положить что-то новое, то старое значение этой переменной автоматически сотрется:
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$name='Сергей';
$_blog1='Site on!';
$name='Андрей'; //записываем новое значение в переменную name
echo $name, ' - автор блога ', $_blog1;
?>
Результат:
Естественно, мы можем передавать значение одной переменной в другую:
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$name = 'Сергей';
$_blog1 = 'Site on!';
$name = $_blog1;
echo $name, ' - автор блога ', $_blog1;
?>
Результат:
При этом значение переменной $_blog1 осталось в ней.
В отличие от строк, при занесении в переменную числа – кавычки не нужны:
$name = 45;
Как и при занесении переменной в переменную:
$name = $_blog1;
После окончания кода на странице все переменные PHP автоматически удаляются. Но бывают редкие случаи, когда нам нужно принудительно удалить переменную до того как закончится код. Для этого служит функция unset:
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$name='Сергей';
$_blog1='Site on!';
$name=$_blog1;
unset($name); //удаляем переменную name
echo $name, ' - автор блога ', $_blog1;
?>
Результат:
Вот мы плавно и перешли к теме ошибок в PHP. Как видите, мы обращаемся к переменной $name, которую перед этим безжалостно удалили – это и привело к замечанию (Notice). Notice нужно считать самой настоящей ошибкой, хотя в большинстве случаев он абсолютно безвредный.
PHP даже пытается нам подсказать, где и какую именно ошибку мы допустили. В нашем случае он пишет:
Undefined variable: name
Что переводится как «неопределённая переменная: name» и дальше показывает нам файл и строчку, на которой все это происшествие и случилось:
in Z:\home\localhost\www\blog2\second-page.php on line 10
То есть в файле second-page.php на строке 10. В данном случае PHP угадал, однако часто бывает, что ошибка находится на одну или несколько строчек выше, например, когда мы забываем поставить точку с запятой в конце очередной инструкции:
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$name='Сергей';
$_blog1='Site on!' //упс, забыл :(
echo $name, ' - автор блога ', $_blog1;
?>
Результат:
В данном случае у нас появилась так называемая Parse error, которая запрещает выполнение всех скриптов на странице, а потому, кроме ошибки нам ничего не показало и не покажет до тех пор, пока мы её не исправим. Учитывая последствия - это серьёзная ошибка, которую, в отличие от предыдущей, обязательно нужно исправить! Но пугаться здесь нечего.
PHP пишет нам, что ошибка находится на восьмой строке (on line 8), однако на самом деле я забыл поставить точку с запятой на 2 строки выше:
Обращаю ваше внимание что, когда вы видите «syntax error, unexpected», то в 99% случаев это значит, что вы забыли поставить точку с запятой.
Следующее, что вам нужно для себя обязательно запомнить: исправлять (фиксить) ошибки нужно сверху вниз! Так как одна ошибка зачастую может повлечь за собой десяток других, поэтому исправив самую первую – есть довольно большой шанс, что автоматически исчезнут и все остальные.
Есть ещё два вида ошибок, о которых обязательно должен знать каждый разработчик PHP – это FATAL error и Warning, которые также обязательно должны быть исправлены! Однако обе эти ошибки НЕ прекращают работу других PHP скриптов на странице, в отличие от Parse error.
Думаю, для одной статьи достаточно, далее мы поговорим о типах переменных в PHP, операторах и многих других интересных вещах. Спасибо за внимание и до встречи на страницах блога Site on!
Пожалуйста, прокомментируйте, как Вам моя статья?