4370

PHP циклы и функции пользователя

Контрольная

Информатика, кибернетика и программирование

PHP Циклы В РНР реализованы два типа циклов: while и for. Цикл while бывает двух типов Проверяющий условие перед проходом цикла while (условие) блок операторов Проверяющий условие после прохода цикла do блок операторов while ус...

Русский

2012-11-18

93 KB

13 чел.

PHP

Циклы

В РНР реализованы два типа циклов: while и for.

Цикл while бывает двух типов

  •  Проверяющий условие перед проходом цикла

while (условие) { блок операторов }

  •  Проверяющий условие после прохода цикла

do { блок операторов } while ( условие)

Число итераций цикла for устанавливается перед первым проходом.

for ( начальное знач. счетчика; условие; оператор изменяющий знач. счетчика)

Досрочно завершить выполнение любого цикла можно при помощи оператора break.

Приведенный ниже пример выводит через пробел числовую последовательность от 1 до 10. Для вывода используются циклы разных типов.

$i = 1;

while ($i<11) {

echo $i." ";

 $i++;

}

$i = 1;

do {

echo $i." ";

$i++;

} while ($i<11);

for ($i=1;$i<11;$i++) {

echo $i." ";

}

Функции пользователя

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

Функции объявляются с помощью оператора function.

function имя функции(параметры) {тело функции }

Рассмотрим пример, в котором описывается функция, вычисляющая куб числа.

// Начало объявления функции

function cube($num) {

// Возвращает $num в третьей степени

return $num * $num * $num;

}

// Окончание объявления функции

// Вызов функции cube():

echo (cube(6)); // Выводит 216

Имя функции (в данном случае "cube") следует за ключевым словом function, а параметры (если они есть) заключаются в скобки и разделяются запятыми. Затем в фигурных скобках должно располагаться тело функции. Для вызова функции просто указывается ее имя, за которым следует пара скобок, содержащих ее аргументы. В PHP З объявление функции должно находиться в коде выше, чем первое обращения к ней, однако в PHP 4 функцию можно определить в любом месте, вне зависимости от расположения ее первого вызова.

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

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

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

function cube($num) {

$num=$num * $num * $num;

return $num;

}

function cube2(&$num) {

$num=$num * $num * $num;

return $num;

}

$a=2;

echo cube($a); //выводит 8

echo $a; //выводит 2

echo cube2($a); //выводит 8

echo $a; //выводит 8

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

function changeval1() {

$value="2";

}

function changeval2() {

global $value;

$value="2";

}

$value="1";

changeval1();

echo ("$value"); // Выводит "1"

changeval2();

echo ("$value"); // Выводит "2"

В функции changeval2 переменная $value описана как глобальная. В результате выполнения этой функции значение переменной $value вне функции изменяется.

Массивы

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

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

В PHP не ассоциативные массивы индексируются, начиная с нулевого элемента (элемента с индексом 0). Существует несколько способов инициализации не ассоциативных массивов.

$countries[]="ru";

$countries[]="de";

$countries[]="ua";

$countries[0]="ru";

$countries[1]="de";

$countries[2]="ua";

$countries=array ("ru","de","ua");

В первом случае создается массив из трех элементов. Поскольку индексы не указаны явно, элементам даются индексы по умолчанию: 0, 1 и 2.

Во втором примере массив задан с явным указанием индексов.

Третий пример демонстрирует способ задания массива при помощи конструкции array

Обычно удобно присваивать индексы в последовательном порядке, как было сделано выше. Однако при необходимости порядок задания индексов может быть произвольным

$countries[50]="ru";

$countries[20]="de";

$countries[10]="ua";

$countries = array (1=>"cr", 2=>"de", 5=>"ua");

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

$countries = array ("ru","de","ua");

$number=count($countries);

for ($i=0;$i<$number; $i++) {

 echo $countries[$i]." ";

}

В результате работы этой программы будет выведена строка “ru de ua”.

Массивы могут использовать в качестве индексов строки (ключи). Такие массивы называются ассоциативными. Существую два способа задания ассоциативных массивов.

$countries["ru"]="Россия";

$countries["de"]="Германия";

$countries["ua"]="Украина";

$countries=array("ru"=>"Россия",

"de"=>"Германия",

 "ua"=>"Украина");

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

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

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

$countries=array("ru"=>"Россия",

"de"=>"Германия",

"ua"=>"Украина");

while (list($key,$value)=each($countries)) {

echo $key.' '.$value.'<br>';

}

Функция each в качестве параметра получает массив и выводит информацию об элементе, на который указывает внутренний курсор. Информация об элементе массива будет представлена в виде массива, состоящего из четырех элементов.

Если в приведенном выше примере сразу после описания массива добавить строку

$arr=each($countries)

то в результате будет создан массив $arr, содержащий следующие значения:

  1.  Первый элемент имеет индекс 0 и значение ru.
  2.  Второй элемент имеет индекс 1 и значение Россия.
  3.  Третий элемент имеет индекс "key" и значение ru.
  4.  Четвертый элемент имеет индекс "value" и значение Россия.

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

Функция list используется для присвоения значений элементов массива заданным переменным. Вызов функции выглядит довольно необычно и больше похож на встроенную конструкцию языка PHP: list(перем1,..,перемN)=массив. Списку переменных, описанных при вызове функции list приравнивается массив, значениями элементов которого будут инициализированы описанные переменные.

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

В приведенном выше примере функция each формирует массив на основе информации, полученной об активном (выделенном внутренним курсором) элементе массива $countries. Функция list выбирает первые два значения сформированного массива и присваивает их переменным $key и $value. В результате, получены ключ и значение одного из элементов массива $countries. После выполнения функции each внутренний курсор массива сдвигается на один элемент. Цикл выполняется до тех пор, пока не будет пройден весь массив $countries.

Файлы

Открытие файлов осуществляется при помощи функция fopen. В общем виде вызов функции выглядит следующим образом:

fopen(имя файла, режим);

Таблица режимов.

Режим

Описание

a

Открыть файл только для дополнения. Данные будут дописаны в конец существующего файла; если файл не существует, РНР пытается создать его

r

Открыть файл только для чтения

w

Открыть файл только для записи. Существующее содержимое файла будет утрачено. Если файл не существует, РНР пытается создать его

При успешном выполнении функция fopen () возвращает дескриптор файла - целое число, позволяющее ссылаться на файл при последующих обращениях к нему; при неудаче функция fopen () возвращает “ложь”:

if (!$file=fopen("text.txt", "r")) {

 echo "Невозможно открыть файл";

}

else {

$text=fread($file,10); // Прочесть первые 10 символов

fclose($file);

}

Программа пытается открыть файл “text.txt”, расположенный в одном каталоге с исполняемым скриптом. В случае неудачи будет выведено сообщение об ошибке. Если файл открыт успешно, функция fread считает первые десять символов из файла.

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

Функции, используемые при работе с файлами:

  •  fopen (имя файла, режим) – открытие файла
  •  fclose(дескриптор) закрытие файла
  •  fgetc(дескриптор) – чтение символа из файла
  •  fread(дескриптор, длина) – чтение последовательности символов из файла
  •  fgets(дескриптор,[длина]) – чтение строки из файла
  •  fputs(дескриптор, строка,[длина]) – запись строки в файл
  •  fwrite(дескриптор, строка,[длина]) – аналог fputs
  •  rewind(дескриптор) – установка внутреннего курсора(указателя) в начало файла
  •  fseek(дескриптор, смещение) – смещение курсора относительно текущей позиции
  •  ftell(дескриптор) – возвращает текущую позицию курсора
  •  copy(исходный файл, копия) – копирование файла
  •  rename(имя файла, новое имя) – переименование файла
  •  unlink(имя файла) – удаление файла


 

А также другие работы, которые могут Вас заинтересовать

29111. Понятие и виды гражданско-правовой ответственности (особенности, функции, гражданско-правовые санкции, классификация, основания и условия ответственности) 37.5 KB
  Понятие и виды гражданскоправовой ответственности особенности функции гражданскоправовые санкции классификация основания и условия ответственности. Гражданская ответственность вид юридической ответственности; установленные нормами гражданского права юридические последствия неисполнения или ненадлежащего исполнения лицом предусмотренных гражданским правом обязанностей что связано с нарушением субъективных гражданских прав другого лица. Классификация: от основания возникновения ответственности: договорную ответственность в случаях...
29112. Понятие и виды гражданско-правовых обязательств 29 KB
  Понятие и виды гражданскоправовых обязательств. Под обязательством понимается гражданское правоотношение в силу которого одно лицо должник обязано совершить в пользу другого лица кредитора определенное действие передать имущество выполнить работу уплатить деньги либо воздержаться от определенного действия а кредитор имеет право требовать от должника исполнения его обязанности. Виды: Встречные – возникают только в случае взаимного обязательства; Простые договор займа и сложные договор куплипродажи Альтернативные и...
29113. Принципы исполнения обязательств 25 KB
  Исполнение обязательств выражающееся в совершении или в воздержании от действий составляющих предмет обязательства базируется на ряде принципов. Принцип надлежащего исполнения обязательства должны исполняться надлежащим образом в соответствии с условиями обязательства и требованиями закона иных правовых актов а при их отсутствии – в соответствии с обычаями делового оборота или иными обычно предъявляемыми требованиями надлежащему лицу в день или период времени предусмотренный обязательством в установленном месте. Принцип...
29114. Срок исполнения обязательств 24.5 KB
  Срок исполнения обязательств. Под сроком исполнения обязательства понимается наступление определенного срока когда обязательство должно быть выполнено. Сроки исполнения могут быть общие на весь период действия длящегося договора частные для исполнения отдельных обязанностей. От сроков исполнения договора или отдельных договорных обязанностей следует отличать срок действия договора.
29115. Множественность лиц в обязательствах 25 KB
  Множественность лиц в обязательствах В обязательстве в качестве каждой из его сторон – кредитора или должника – могут участвовать одно или одновременно несколько лиц. Наличие на стороне должника кредитора или обеих сторон нескольких лиц множественностью лиц в обязательствах. Виды обязательств в множественности лиц: Активное Пассивное Долевые обязательства – презумпция равенства долей; объем ответственности определен Солидарные обязательства – долг неделим при солидарности; каждый субъект обязан либо управомочен требовать всю сумму...
29116. Очередность погашения требований по денежному обязательству 24 KB
  Сумма произведенного должником платежа недостаточная для исполнения денежного обязательства полностью при отсутствии иного соглашения погашает . прежде всего издержки кредитора по получению исполнения затем – проценты лишь в оставшейся части – основную сумму долга.
29117. Форма сделки. Государственная регистрация сделок 33.5 KB
  Форма сделки. Сделки совершаются устно или в письменной форме простой или нотариальной. Устные сделки Сделка для которой законом или соглашением сторон не установлена письменная простая или нотариальная форма может быть совершена устно. Сделки во исполнение договора заключенного в письменной форме могут по соглашению сторон совершаться устно.
29118. Недействительные сделки. Последствия недействительности сделок 30 KB
  Недействительные сделки. Оспоримые и ничтожные сделки Сделка недействительна по основаниям в силу признания ее таковой судом оспоримая сделка – одна из сторон независимо от такого признания ничтожная сделка любое заинтересованное лицо. Общие положения о последствиях недействительности сделки Недействительная сделка не влечет юридических последствий. При недействительности сделки каждая из сторон обязана возвратить другой все полученное по сделке.
29119. Представительство в гражданском праве (понятие, основания возникновения, ограничение полномочий представителя) 31 KB
  Сделка совершенная одним лицом представителем от имени другого лица представляемого в силу полномочия основанного на доверенности указании закона либо акте уполномоченного на то государственного органа или органа местного самоуправления непосредственно создает изменяет и прекращает гражданские права и обязанности представляемого. Основания возникновения: Доверенность Акт органов МСУ Акт государственного органа На основании закона Не являются представителями: лица действующие хотя и в чужих интересах но от собственного имени...