17.04.2024

Основы языка php. Разделение инструкций Изучение основных правил синтаксиса php


В каком случае выполняется блок действий цикла
for (expr1; expr2; expr3) {
// блок действий
}

√ если второе выражение (expr2) вычисляется как true
если первое выражение (expr1) вычисляется как true
если третье выражение (expr3) вычисляется как true

Вывести на экран все элементы массива $arr = array(4,3,2,1);?
√ foreach ($arr as $a) echo «$a «;

for ($i=1; $i<$arr; $i++) echo $arr[$i] .»»;

√ $i=0;
while ($arr[$i]) {
echo $arr[$i] .»»;
$i++;
}

Дан массив $arr. Вывести на экран третий элемент массива, если он равен числу 3.
if ($arr == 3) echo $arr;
?>

if ($arr == 3) echo $arr;
?>

if ($arr = 3) echo $arr;
?>

Дан массив $arr. Вывести на экран четвертый элемент массива, если он эквивалентен строке «4».
if ($arr == «3») echo $arr;
?>

if ($arr === «4») echo $arr;
?>

if ($arr == «4») echo $arr;
?>

Дана команда :
if ($var) echo «Hello»;
else echo «Bye»;
В каком случае на экран будет выведено слово «Bye»?

√ если $var === false
если $var == «true»
√ если $var == «»

Дана команда: if(!$var) echo «Hello»; В каком случае на экран будет выведено слово «Hello»?
если $var == true
√ если $var преобразуется к логическому false
√ если $var = 0

Для чего может использоваться PHP?
для создания операционных систем
√ для создания скриптов, выполняющихся в командной строке
√ для создания клиентских GUI-приложений

Для чего не может использоваться PHP?
√ для создания операционных систем
для создания скриптов, выполняющихся в командной строке
для создания клиентских GUI-приложений

Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции register_globals?
в скрипте пользователя
в php.ini, в скрипте пользователя или в файле.htaccess
√ в php.ini, в файле.htaccess или в httpd.conf

Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции session.auto_start?
√ в скрипте пользователя
√ в php.ini или httpd.conf
√ в файле.htaccess

Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции user_dir?
в скрипте пользователя
√ только в php.ini или httpd.conf
в файле.htaccess

Как встраивается PHP в HTML-код?
√ с помощью тегов ‘
√ с помощью тегов ‘
с помощью тегов ‘<$’ и ‘$>’

Как задаются комментарии в языке PHP?
√ // строка комментариев
√ /* несколько строк комментариев */
/ несколько строк комментариев /
** строка комментариев **

Как можно задать массив в языке PHP?
√ $arr = array(«a»,»b»,»c»);
√ $arr = «a»;
$arr («0″=> «a»);
$arr[«a»,»b»,»c»] = «q»;

Как можно задать строку в языке PHP?
√ с помощью двойных кавычек: $var = «это строка»;
с помощью открывающего символа ‘<<<‘ и закрывающего ‘>>>’:
$var = <<< это строка >>>;
√ с помощью одинарных кавычек: $var = ‘это строка’;
√ heredoc-синтаксисом:
$var = <<

Как получить значение константы с именем CONS в языке PHP?
$CONS
define(«CONS», true);
√ CONS
√ constant(«CONS»)

Как присваивается значение константе в языке PHP?
√ define(«CONS»,»text»);
√ define(«CONS»,»text», true);
CONS = «text»
constant(«CONS») = «text»

Как присваивается значение переменной в языке PHP?
√ $var = 1;
var_name = «text»;
$12as = 12;

Как разделяются инструкции в языке PHP?
√ с помощью символа ‘;’
с помощью символа ‘#’
с помощью символа ‘ с помощью символа пробела

Какие из операторов if записаны правильно с точки зрения синтаксиса?
√ if ($par == «») {
echo «Some text»;
$par +=1;
}

√ if ($par == «») :
echo «Some text»;
$par +=1;
endif;

if ($par = «») {
echo «Some text»;
$par +=1;
} else: echo «Another text»;
endif;

Какие из операторов switch записаны правильно с точки зрения синтаксиса?

case «1»: echo «1»;
break;
case 2: echo 2;
break;
endswitch;

1: echo «1»;
2: echo 2;
}


case «1»: echo «1»;
case 2: echo 2;
default: echo 3;
}

Какие из утверждений относительно оператора include верны?
√ include используется для включения в программу содержимого другого файла
√ include выполняет код указанного в нем файла столько раз, сколько раз этот оператор встречается в программе
файл, включаемый с помощью include, должен быть правильным HTML-файлом

Какие из утверждений относительно оператора require верны?
√ require используется для включения в программу содержимого другого файла
при использовании внутри условных блоков require не нужно заключать в фигурные скобки
√ require выполняет код указанного в нем файла только один раз

Какие из циклов while записаны правильно с точки зрения синтаксиса?
echo $a;
$a++;
endwhile;

√ while ($a < $b):
echo $a;
$a++;
endwhile;

√ while ($a < $b){
echo $a;
$a++;
}

Какие парадигмы программирования поддерживает PHP?
√ объектно-ориентированную
√ процедурную
Функциональную

Какие шаги обязательно нужно проделать для того чтобы установить web-сервер Apache с помощью программы установщика?
√ запустить программу установки, согласиться с лицензией, задать имя домена, имя сервера, e-mail администратора, выбрать тип установки, выбрать папку для установки сервера, запустить процесс инсталляции

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

запустить программу установки


for ($j=1; 😉
{
$i = round (9/$j);
switch ($i)
{
case 5: echo «+»;
break;
case 9: echo «-«;
break;
case 3: echo «!»;
break 2;
default: echo $i;
break;
}
$j++;
}
?>
___________

ошибка синтаксиса
√ -+!
+-!
бесконечный цикл

Каким будет результат выполнения следующей программы
for ($j=1; ;)
{
$i = round (9/$j);
switch ($i)
{
case 5: echo «+»;
break;
case 9: echo «-«;
break;
case 3: echo «!j=$j,»;
continue 2;
default: echo $i;
break;
}
$j++;
}
?>
____________

ошибка синтаксиса
-+!
+-!
√ бесконечный цикл

Какой оператор обозначает равенство значений в языке PHP?
===
√ ==
=
:=

Когда вычисляется значение первого (expr1) и второго (expr2) выражений в цикле
for (expr1; expr2; expr3) {
// блок действий
}

expr1 – один раз в начале цикла, expr2 – один раз после завершения всех итераций цикла

expr1 – каждый раз в начале очередной итерации цикла, expr2 – каждый раз в конце итерации цикла

√ expr1 – один раз в начале цикла, expr2 – каждый раз в конце итерации цикла

Написать программу, которая выводит «жирными» буквами (тег ) строку «Добро пожаловать!» с использованием языка PHP.
echo «Добро пожаловать!»;
?>


echo «Добро пожаловать!»;
?>

echo «Добро пожаловать!»;
?>

Отметьте скалярные типы данных, которые имеются в языке PHP?
√ string
text
√ boolean
resource
√ float

С помощью какого оператора можно выполнять разные действия в зависимости от условия?
√ if
for
√ switch

С помощью какой конструкции можно выполнять периодически блок действий до тех пор, пока верно условие?
√ c помощью цикла while
c помощью условного оператора if
√ c помощью цикла for

Чем отличается оператор break от оператора continue?
√ break заканчивает выполнение текущего цикла, а continue – текущей итерации цикла

break используется для принудительной остановки циклов, а continue – для условных операторов

continue не может быть вызван с дополнительным числовым аргументом, а break – может

Чем отличается скрипт на языке PHP от скрипта на языке JavaScript?
ничем не отличаются
способом встраивания в HTML-код
√ скрипт на языке JavaScript обрабатывается клиентом, а PHP-скрипт – сервером

Чем отличаются операторы require и include?
ничем
√ в случае возникновения ошибки include выдает предупреждение, а require – фатальную ошибку
require нельзя использовать внутри циклов, а include – можно

Чем цикл while отличается от цикла do..while?
ничем
√ блок действий цикла do..while гарантированно выполняется один раз
while выполняет блок действий только один раз

Чему будет равна переменная $result в результате выполнения следующей программы
$value = array(«0″,»»,»1″);
foreach ($value as $v) {
if (!$v) $result = true;
else $result = false;
}
?>

√ Array( => true => true => false)
Array( =>true =>true => true)
false, false, true

Что мы получим в результате обработки интерпретатором файла index.php?
7. Файл vars.php:
$a = 1;
?>
Файл index.php:
for ($I=0; $I < 3; $I++)
{
include(«vars.php»);
echo $a++;
}
?>
________
12
123
1234
√ 111

Файл
Файл vars.php:
$a++;
?>

Файл index.php:
$a = 0;
for ($I=0; $I < 3; $I++)
{
require(«vars.php»);
echo $a;
}
?>
__________
√ 123
0
1
ошибку

Файл index . php : php $ a =
Файл index.php:
$a = 0;
for ($I=0; $I < 3; $I++)
{
if (file_exists(«vars.php»)) require(«vars.php»);
echo $a;
}
?>
________
123
√ 000
1
Ошибку

Что нужно сделать для того, чтобы настроить PHP для работы с сервером Apache (PHP устанавливается как серверный модуль)?
добавить в httpd.conf строки:


AddModule mod_php4.c

√ установить в php.ini переменные doc_root, user_dir и extension_dir и добавить в httpd.conf строки:
LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .phtml
AddModule mod_php4.c

установить в php.ini переменные doc_root, user_dir и extension_dir и добавить в httpd.conf строки:
ScriptAlias /php/ «c:/php/»
AddType application/x-httpd-php .php .phtml
Action application/x-httpd-php «/php/php.exe»

Что нужно сделать, чтобы получить в браузере строку: «PHP работает: привет»
Вы создали php файл вида:
PHP работает:
if (1 < 0) echo «привет»;
?>

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

Что такое корень сервера Apache и где он находится по умолчанию (для windows систем)?
√ корень сервера это директория, файлы которой обрабатываются сервером. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/htdocs»

это директория, в которой находятся все PHP скрипты сервера. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/htdocs»

это директория, в которой находятся все документы, которые должен обрабатывать сервер. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/»

Что такое пользовательская директория сервера и где она находится по умолчанию (для windows систем)?
√ это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером, если он получает запрос типа ~user. Находится в «C:/Program Files/Apache Group/Apache/users/»

это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером. Находится в «C:/Program Files/Apache Group/Apache/htdocs/users/»

это директория, выделенная пользователю для личных нужд, файлы которой никогда не обрабатываются сервером. Находится в «C:/Program Files/Apache Group/Apache/users/»

это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером, если он получает запрос типа ~user. Находится в «C:/Program Files/Apache Group/Apache/htdocs/users/»

Общие понятия

Язык PHP специально предназначен для веб-программирования. PHP сочетает достоинства языков C и Perl и при этом весьма прост в изучении и обладает значительными преимуществами перед традиционными языками программирования.

Синтаксис PHP очень напоминает синтаксис языка C и во многом заимствован из таких языков как Java и Perl.

Программист С очень быстро освоит язык PHP и сможет использовать его с максимальной эффективностью.
В принципе, в PHP есть практически все операторы и функции , имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других...

Цель данного раздела - краткое ознакомление с основами синтаксиса языка PHP. Более подробную информацию по конкретным составляющим синтаксиса PHP вы найдете в соответствующих разделах.

PHP и HTML

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



Пример

echo "Привет, я - скрипт PHP!" ;
?>


Вы уже наверняка заметили, что это классический скрипт, с которого начинают изучение языка программирования.

Обратите внимание, что HTML-код корректно обрабатывается интерпретатором PHP.

Начало сценария вас может озадачить: разве это сценарий? Откуда HTML-тэги и ? Вот тут-то и кроется главная особенность (кстати, чрезвычайно удобная) языка PHP: PHP-скрипт может вообще не отличаться от обычного HTML-документа.

Идем дальше. Вы, наверное, догадались, что сам код сценария начинается после открывающего тэга и заканчивается закрывающим ?> . Итак, между этими двумя тэгами текст интерпретируется как программа, и в HTML-документ не попадает. Если же программе нужно что-то вывести, она должна воспользоваться оператором echo.

Итак, PHP устроен так, что любой текст, который расположен вне программных блоков, ограниченных и ?> , выводится в браузер непосредственно. В этом и заключается главная особенность PHP, в отличие от Perl и C, где вывод осуществляется с помощью стандартных операторов.

Разделение инструкций

Инструкции разделяются также как и в C или Perl - каждое выражение заканчивается точкой с запятой.

Закрывающий тег (?>) также подразумевает конец инструкции, поэтому два следующих фрагмента кода эквиваленты:

echo "Это тест" ;
?>

Комментарии в PHP скриптах

Написание практически любого скрипта не обходится без комментариев.

PHP поддерживает комметарии в стиле "C", "C++" и оболочки Unix. Например:

echo "Это тест" ; // Это однострочный комментарий в стиле c++
/* Это многострочный комментарий
еще одна строка комментария */
echo "Это еще один тест" ;
echo "Последний тест" ; # Это комментарий в стиле оболочки Unix
?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними.

Это пример.


Заголовок вверху выведет "Это пример".

Будьте внимательны, следите за отсутствием вложенных "C"-комментариев, они могут появиться во время комментирования больших блоков:

/*
echo "Это тест"; /* Этот комментарий вызовет проблему */
*/
?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать.

Переменные в PHP

Имена переменных обозначаются знаком $ . То же самое "Привет, я - скрипт PHP! " можно получить следующим образом:

$ message = "Привет, я - скрипт PHP!" ;
echo $ message ;
?>

Типы данных в PHP

PHP поддерживает восемь простых типов данных:

Четыре скалярных типа:

Boolean (двоичные данные)
- integer (целые числа)
- float (числа с плавающей точкой или "double")
- string (строки)

Два смешанных типа:

Array (массивы)
- object (объекты)

И два специальных типа:

resource (ресурсы)
NULL ("пустые")

Существуют также несколько псевдотипов:

Mixed (смешанные)
- number (числа)
- callback (обратного вызова)

Подробно о типах данных в PHP

Выражения в PHP

Основными формами выражений являются константы и переменные. Например, если вы записываете "$a = 100", вы присваиваете "100" переменной $a:

В приведенном примере $a - это переменная, = - это оператор присваивания, а 100 - это и есть выражения. Его значение 100.

Выражением может быть и переменная, если ей сопоставлено определенное значение:

$x = 7;
$y = $x;

В первой строке рассмотренного примера выражением является константа 7, а во второй строке - переменная $x, т.к. ранее ей было присвоено значение 7. $y = $x также является выражением.

Подробно о выражениях в PHP вы найдете

Операторы PHP

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

Примеры операторов PHP:

Операторы присвоения:

$a = ($b = 4 ) + 5 ; // результат: $a установлена значением 9, переменной $b присвоено 4.

?>

Комбинированные операторы:

$a = 3 ;
$a += 5 ; // устанавливает $a значением 8, аналогично записи: $a = $a + 5;
$b = "Hello " ;
$b .= "There!" ; // устанавливает $b строкой "Hello There!", как и $b = $b . "There!";

?>

Строковые операторы:

$a = "Hello " ;
$b = $a . "World!" ; // $b содержит строку "Hello World!"

$a = "Hello " ;
$a .= "World!" ; // $a содержит строку "Hello World!"
?>

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

Подробную информацию по операторам PHP вы найдете .

Управляющие конструкции языка PHP

Основными конструкциями языка PHP являются:

  1. Условные операторы (if, else);
  2. Циклы (while, do-while, for, foreach, break, continue);
  3. Конструкции выбора (switch);
  4. Конструкции объявления (declare);
  5. Конструкции возврата значений (return);
  6. Конструкции включений (require, include).

Примеры конструкций языка PHP:

if ($a > $b ) echo "значение a больше, чем b" ;
?>

Приведенный пример наглядно показывает использование конструкции if совместно с оператором сравнения ($a > $b).

В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true), то есть показано взаимодействие условного оператора (конструкции) if с логическим оператором:

if ($a ) echo "значение a истинно (true) " ;
?>

А вот пример цикла while:

$ x = 0 ;
while ($ x ++< 10 ) echo $ x ;
// Выводит 12345678910
?>

Информацию по всем управляющим конструкциям PHP вы можете получить

Пользовательские функции в PHP

В любом языке программирования существуют подпрограммы. В языке C они называются функциями, в ассемблере - подпрограммами, а в Pascal существуют два вида подпрограмм: процедуры и функции.

В PHP такими подпрограммами являются.

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

Приведем пример пользовательской функции на PHP:

function funct () {
$a = 100 ;
echo "

$a

" ;
}
funct ();

?>

Сценарий выводит 100:

Пользовательским функциям в PHP можно передавать аргументы и получать возвращаемые функциями значения.

Подробную информацию по пользовательским функциям PHP вы найдете

Встроенные (стандартные) функции PHP

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

ООП и PHP

PHP имеет достаточно хорошую поддержку объектно-ориентированного программирования (ООП).

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

Вот пример PHP класса и его использования:

// Создаем новый класс Coor:
class Coor {
// данные (свойства):
var $ name ;

// методы:
function Getname () {
echo "

John

" ;
}

}

// Создаем объект класса Coor:
$ object = new Coor ;
// Получаем доступ к членам класса:
$ object -> name = "Alex" ;
echo $ object -> name ;
// Выводит "Alex"

Есть еще вопросы или что-то непонятно - добро пожаловать на наш

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

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

Книга:

Основы синтаксиса

Основы синтаксиса

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

В качестве примера решим задачу создания заготовки электронного письма. Ее смысл заключается в следующем.

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

Основной синтаксис

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

Разделение инструкций

Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.

Закрывающий тег «?>» также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, два следующих фрагмента кода эквивалентны:

echo "Hello, world!"; // точка с запятой
// в конце команды
// обязательна
?>
echo "Hello, world!" ?>

Комментарии

Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. Это важно при создании больших программ и в случае, если несколько человек работают над одной программой. При наличии комментариев в программе в ее коде разобраться гораздо проще. Кроме того, если решать задачу по частям, недоделанные части решения также удобно комментировать, чтобы не забыть о них в дальнейшем. Во всех языках программирования предусмотрена возможность включать комментарии в код программы. PHP поддерживает несколько видов комментариев: в стиле Cи, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ – соответственно начало и конец многострочных комментариев.

echo "Меня зовут Вася";
// Это однострочный комментарий
// в стиле С++
echo "Фамилия моя Петров";
/* Это многострочный комментарий.
Здесь можно написать несколько строк.
При исполнении программы все, что
находится здесь (закомментировано),
будет игнорировано. */
echo "Я изучаю PHP в INTUIT.ru";
# Это комментарий в стиле
# оболочки Unix
?>

Переменные, константы и операторы

Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам. Рассмотрим, как выделяются и обрабатываются эти элементы в PHP.

Переменные

Переменная в PHP обозначается знаком доллара, за которым следует ее имя. Например:

Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.

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

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


// значение
// " Text "
$second = $first; // Присваиваем $second
// значение
// переменной $first
$first = " New text "; // Изменяем
// значение
// $first
// на " New text "
echo "Переменая с именем first " .
"равна $first
";
// выводим значение $first
echo "Переменая с именем second " .
"равна $second";
// выводим значение $second
?>

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

Переменная с именем first равна New text
Переменная с именем second равна Text

PHP 4, кроме этого, предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.

Рассмотрим тот же пример, что и выше, только будем присваивать значение переменной first переменной second по ссылке:

$first = " Text "; // Присваиваем $first
// значение " Text "
$second = &$first;
/* Делаем ссылку на $first через $second.
Теперь значения этих переменных
будут всегда совпадать */
// Изменим значение $first
// на " New text "
$first = " New text ";
echo "Переменная с именем first " .
"равна $first
";
// выведем значения обеих переменных
echo "Переменная с именем second " .
"равна $second";
?>

Этот скрипт выведет следующее:

Переменная с именем first равна New text.
Переменная с именем second равна New text.

То есть вместе с переменной $first изменилась и переменная $second.

Константы

Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и т.п. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define(). Ее синтаксис таков:

define("Имя_константы",
"Значение_константы",
[Нечувствительность_к_регистру])

По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.

Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра.

// определяем константу
// PASSWORD
define("PASSWORD","qwerty");
// определяем регистронезависимую
// константу PI со значением 3.14
define("PI","3.14", True);
// выведет значение константы PASSWORD,
// т.е. qwerty
echo (PASSWORD);
// тоже выведет qwerty
echo constant("PASSWORD");
echo (password);
/* выведет password и предупреждение,
поскольку мы ввели регистрозависимую
константу PASSWORD */
echo pi;
// выведет 3.14, поскольку константа PI
// регистронезависима по определению
?>

Кроме переменных, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.

Операторы

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

Сложение

Вычитание

Умножение

Остаток от деления

Конкатенация (сложение строк)

(это строка, состоящая из $a и $b)

Присваивание

Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либо операций или переменной/константы с правой стороны

$a = ($b = 4) +5;

($a будет равна 9, $b будет равна 4)

Сокращение. Прибавляет к переменной число и затем присваивает ей полученное значение

(эквивалентно $a = $a + 5;)

Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную)

$b = "Привет ";
$b .= "всем";

В результате: $b="Привет всем"

$a и $b истинны (True)

Хотя бы одна из переменных $a или $b истинна (возможно, что и обе)

Исключающее или

Одна из переменных истинна. Случай, когда они обе истинны, исключается

Инверсия (NOT)

Если $a=True, то!$a=False и наоборот

Равенство

Значения переменных равны

Эквивалентность

Равны значения и типы переменных

Неравенство

Значения переменных не равны

Неравенство

Неэквивалентность

Переменные не эквивалентны

Меньше или равно

Больше или равно

Пре-инкремент

Увеличивает $a на единицу и возвращает $a

$a=4;
echo "Должно быть 4:" .$a++;
echo "Должно быть 6:" .++$a;
?>

Пост-инкремент

Возвращает $a, затем увеличивает $a на единицу

Пре-декремент

Уменьшает $a на единицу и возвращает $a

Пост-декремент

Возвращает $a, затем уменьшает $a на единицу

Типы данных

PHP поддерживает восемь простых типов данных.

Четыре скалярных типа:

Boolean (логический);

Integer (целый);

Float (с плавающей точкой);

String (строковый).

Два смешанных типа:

Array (массив);

Object (объект).

И два специальных типа:

Resource (ресурс);

В PHP не принято явное объявление типов переменных. Предпочтительнее, чтобы это делал сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная. Рассмотрим по порядку все перечисленные типы данных.

Тип boolean (булев или логический тип)

Этот простейший тип выражает истинность значения, то есть переменная этого типа может иметь только два значения – истина TRUE или ложь FALSE.

Чтобы определить булев тип, используют ключевое слово TRUE или FALSE. Оба регистронезависимы.

$test = True;
?>

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

// Оператор "==" проверяет равенство
// и возвращает
// булево значение
if ($know == False) { // если $know
// имеет значение
// false
echo "Изучай PHP!";
}
if (!$know) { // то же самое, что
// и выше, т.е. проверка
// имеет ли $know значение
// false
echo "Изучай PHP!";
}
/* оператор == проверяет, совпадает ли
значение переменной $action со строкой
"Изучить PHP". Если совпадает, то
возвращает true, иначе – false.
Если возвращено true, то выполняется
то, что внутри фигурных скобок */
if ($action == "Изучить PHP")
{ echo "Начал изучать"; }
?>

Тип integer (целые)

Этот тип задает число из множества целых чисел Z = {..., -2, -1, 0, 1, 2, ...}. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком «-» или «+».

Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.

# десятичное число
$a = 1234;
# отрицательное число
$a = -123;
# восьмеричное число (эквивалентно
# 83 в десятичной системе)
$a = 0123;
# шестнадцатеричное число (эквивалентно
# 26 в десятичной системе)
$a = 0x1A;
?>

Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). Беззнаковые целые PHP не поддерживает.

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

В PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5. Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round(), округляющую значение по стандартным правилам. Для преобразования переменной к конкретному типу нужно перед переменной указать в скобках нужный тип. Например, для преобразования переменной $a=0.5 к целому типу необходимо написать (integer)(0.5) или (integer) $a или использовать сокращенную запись (int)(0.5). Возможность явного приведения типов по такому принципу существует для всех типов данных (конечно, не всегда значение одного типа можно перевести в другой тип). Мы не будем углубляться во все тонкости приведения типов, поскольку PHP делает это автоматически в зависимости от контекста.

Тип float (числа с плавающей точкой)

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

$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Размер числа с плавающей точкой зависит от платформы, хотя максимум, как правило, ~1.8e308 с точностью около 14 десятичных цифр.

Тип string (строки)

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

Строка в PHP может быть определена тремя различными способами:

С помощью одинарных кавычек;

С помощью двойных кавычек;

Heredoc-синтаксисом.

Одинарные кавычки

Простейший способ определить строку – это заключить ее в одинарные кавычки «"». Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты «», т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее «"».

Если внутри строки, заключенной в одинарные кавычки, обратный слэш «» встречается перед любым другим символом (отличным от «» и «"»), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.

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

echo "Также вы можете вставлять в строки
символ новой строки таким образом,
поскольку это нормально";
// Выведет: Чтобы вывести " надо
// перед ней поставить
echo "Чтобы вывести " надо перед "
"ней поставить ";
// Выведет: Вы хотите удалить C:*.*?
echo "Вы хотите удалить C:*.*?";
// Выведет: Это не вставит: n
// новую строку
echo "Это не вставит: n новую строку";
// Выведет: Переменные $expand также
// $either не подставляются
echo "Переменные $expand также $either" .
"не подставляются";
?>

Двойные кавычки

Если строка заключена в двойные кавычки «"», PHP распознает большее количество управляющих последовательностей для специальных символов. Некоторые из них приведены в таблице 2.7.

Новая строка (LF или 0x0A (10) в ASCII)

Возврат каретки (CR или 0x0D (13) в ASCII)

Горизонтальная табуляция (HT или 0x09 (9) в ASCII)

Обратная косая черта

Знак доллара

Двойная кавычка

Повторяем, если вы захотите экранировать любой другой символ, обратная косая черта также будет напечатана!

Самым важным свойством строк в двойных кавычках является обработка переменных.

Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

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

$str = << Пример строки,охватывающей несколько
строчек, с использованием
heredoc-синтаксиса
EOD;
// Здесь идентификатор – EOD. Ниже
// идентификатор EOT
$name = "Вася";
echo << Меня зовут "$name".
EOT;
// это выведет "Меня зовут "Вася"."
?>

Замечание: Поддержка heredoc была добавлена в PHP 4.

Тип array (массив)

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

Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам.

Определение при помощи array()

array ( => value,
=> value1, ...)

Языковая конструкция array() принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в PHP типа. Числовой ключ массива часто называют индексом. Индексирование массива в PHP начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ искомого элемента. Если ключ массива представляет собой стандартную запись целого числа, то он рассматривается как число, в противном случае – как строка. Поэтому запись $a["1"] равносильна записи $a, так же как и $a["-1"] равносильно $a[-1].

$books = array ("php" =>
"PHP users guide",
12 => true);
echo $books["php"];
//выведет "PHP users guide"
echo $books; //выведет 1
?>

Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Начиная с PHP 4.3.0, если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).

// массивы $arr и $arr1 эквиваленты
$arr = array(5 => 43, 32, 56, "b" => 12);
$arr1 = array(5 => 43, 6 => 32,
7 => 56, "b" => 12);
?>

Если использовать в качестве ключа TRUE или FALSE, то его значение переводится соответственно в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее надо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок. Нельзя использовать в качестве ключа массивы и объекты.

Определение с помощью синтаксиса квадратных скобок

Создать массив можно, просто записывая в него значения. Как мы уже говорили, значение элемента массива можно получить с помощью квадратных скобок, внутри которых нужно указать его ключ например, $book["php"]. Если указать новый ключ и новое значение например, $book["new_key"]="new_value", то в массив добавится новый элемент. Если мы не укажем ключ, а только присвоим значение $book="new_value", то новый элемент массива будет иметь числовой ключ, на единицу больший максимального существующего. Если массив, в который мы добавляем значения, еще не существует, то он будет создан.

$books["key"]= value; // добавили в массив
// $books значение
// value с ключом key
$books = value1; /* добавили в массив
значение value1 с
ключом 13, поскольку
максимальный ключ у
нас был 12 */
?>

Для того чтобы изменить конкретный элемент массива, нужно просто присвоить ему с его ключом новое значение. Изменить ключ элемента нельзя, можно только удалить элемент (пару ключ/значение) и добавить новую. Чтобы удалить элемент массива, нужно использовать функцию unset().

$books = array ("php" =>
"PHP users guide",
12 => true);
$books =
"Book about Perl"; // добавили элемент
// с ключом (индексом)
// 13 это эквивалентно
// $books =
// "Book about Perl";
$books["lisp"] =
123456; /* Это добавляет к массиву новый
элемент с ключом "lisp" и
значением 123456 */
unset($books); // Это удаляет элемент
// c ключом 12 из массива
unset ($books); // удаляет массив полностью
?>

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

$arr =
array ("a","b","c"); /* Создаем массив
со значениями
"a", "b" и "c".
Поскольку ключи
не указаны, они
будут 0,1,2
соответственно */

// и значения)
unset($arr);
unset($arr);
unset($arr);
// удаляем из него все значения
print_r($arr); // выводим массив (и ключи,
// и значения)
$arr = "aa"; // добавляем новый элемент
// в массив.
// Его индексом (ключом)
// будет 3, а не 0
print_r($arr);
$arr =
array_values($arr); // переиндексируем
// массив
$arr = "bb"; // ключом этого элемента
// будет 1
print_r($arr);
?>

Результатом работы этого скрипта будет:

Array ( => a => b => c)
Array ()
Array ( => aa)
Array ( => aa => bb)

Тип object (объекты)

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

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

//создаем класс людей
class Person
{
// метод, который обучает человека PHP
function know_php()
{
echo "Теперь я знаю PHP";
}
}
$bob = new Person; // создаем объект
// класса человек
$bob -> know_php(); // обучаем его PHP
?>

Более подробно реализацию принципов ООП в языке PHP мы рассмотрим в одной из следующих лекций.

Тип resource (ресурсы)

Ресурс – это специальная переменная, содержащая ссылку на внешний ресурс (например, соединение с базой данных). Ресурсы создаются и используются специальными функциями (например, mysql_connect(), pdf_new() и т.п.).

Тип Null

Специальное значение NULL говорит о том, что переменная не имеет значения.

Переменная считается NULL, если:

Ей была присвоена константа NULL ($var = NULL);

Ей еще не было присвоено какое-либо значение;

Она была удалена с помощью unset().

Существует только одно значение типа NULL – регистронезависимое ключевое слово NULL.

Решение задачи

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

// пусть наша подпись
// будет константой
define("SIGN","С уважением, Вася");
// зададим массивы людей и событий
$names = array("Иван Иванович",
"Петр Петрович",
"Семен Семенович");
$events = array(
"f" => "день открытых дверей",
"o" => "открытие выставки",
"p" => "бал выпускников");
// составим текст приглашения
$str = "Уважаемый (ая), $names";
$str .= "
Приглашаем Вас на ".
$events["f"];
$str .= "
" . SIGN;
echo $str; // выведем текст на экран
?>

Заключение

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

«PHP основы» – второй урок учебника PHP. В этом уроке мы более детально взглянем на грамматику PHP: научимся разделять инструкции и создавать комментарии.

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

Основы PHP: Разделение инструкций.

Программа на любом языке программирования представляет упорядоченный набор инструкций, выполняющийся по определенным алгоритмам (линейно, циклически и т.д.). И PHP с этой точки зрения не является исключением.

Для отделения одной команды от другой необходимо использовать специальные символы – разделители. В PHP эту роль выполняет символ «; «.

Символ разделения должен находиться в конце каждой инструкции за рядом некоторых исключений, например в конце программы перед символом ?> не обязательно ставить «; «

Внимательно посмотрите на приведенный пример. В нем два вызова одного и того же оператора при одинаковых условиях происходят с «; » и без «; «, но несмотря на это, программа не выдает сообщения об ошибке. Связанно это с тем, что используется единственный оператор в программе, а как мы уже говорили, перед ?> можно опустить символ разделения.

Использование комментариев в PHP.

В любом языке программирования поддерживается возможность оставлять комментарии (HTML, CSS, JavaScript, C++ и т.д.). Говорить о необходимости использования комментариев, я думаю не стоит т.к. это неоднократно обсуждалось в других учебниках этого сайта.

Как и в других языках, в PHP имеется поддержка как однострочных, так и многострочных комментариев. Для создания однострочного комментария используются символы // :

// Это однострочный комментарий
// А это его продолжение

Для создания многострочного комментария используется контейнер /*…*/ :

/* Это многострочный комментарий,
он может вместить внутри себя
абсолютно любое количество строк */

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

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


© 2024
slushat-audioskazki.ru - Компьютерные подсказки - Это полезно знать