4370

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

Контрольная

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

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

Русский

2012-11-18

93 KB

12 чел.

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(имя файла) – удаление файла


 

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

14287. Александр Николаевич Скрябин 1872-1915 Творческий путь 47.5 KB
  Творческий путь Это композитор молодого поколения. Ученик Танеева который выдвинулся в конце 19 века вместе с Рахманиновым и Метнером. Новатор. Обновил все средства музыкальной выразительности. Создал свой стиль. Компози...
14288. Моя любимая музыка - Рок 35.5 KB
  Музыка. Мне очень нравится слушать музыку. Существует много музыкальных исполнителей творчество которых мне интересно. Однако из всех музыкальных стилей я отдаю особое предпочтение рок – музыке. Рок представляет собой огромную и многогранную музыкальную культур
14289. Сценарий спортивно-музыкального праздника «Здравствуй, лето!» для детей старшего дошкольного возраста 75.5 KB
  Сценарий спортивномузыкального праздника Здравствуй лето для детей старшего дошкольного возраста сценарий подготовлен руководителем физвоспитания ГБДОУ д/с № 50 Паниной О.А. Цель: Укрепление здоровья детей. Воспитание любви к физической культуре и с...
14290. Строение урока по изучению музыкальной формы 14.91 KB
  Строение урока по изучению музыкальной формы Продолжительность форма организации урока академических часа в неделю подряд пара 1 час 20 минут. Название темы и краткая историческая характеристика. Рассказ о времени возникновения времени ис
14291. ТЕАТР КАК ВИД ИСКУССТВА 187.7 KB
  Реферат по эстетике ТЕАТР КАК ВИД ИСКУССТВА Сущность театра. Театральное искусство Сценический образ Актер в театре Опера –часть театрального искусства Балет. Театр в XX веке. Детский театр..
14292. Фотоаппараты. Музыкальные инструменты 158 KB
  Тема 6 Фотоаппараты. Музыкальные инструменты Лекция 10 1 вопрос Особенности сервисного обслуживания фототоваров Сервисное обслуживание фототоваров имеет существенные отличия связанные со спецификой данной товарной группы и включает разнообразные услуги от серви
14293. Музична культура 217 KB
  Тема 12 Музична культура. 10 клас. 2930 Національна хорова і музичнопісенна культура представлена професійними колективами Думка1930 Трембіта 1951 український народний хор під керівництвом Г. Верьовки. 1989 – початок конкурсу хорів ім.. М. Леонтовича. 1923-1928 – респуб
14294. Морально-дидактическое понимание музыки в Средневековье 52 KB
  Моральнодидактическое понимание музыки в Средневековье Период Средневековья в Западной Европе начинается с распада Римской империи. Он охватывает период 515 века. В это время пишется множество философских и музыкальных трактатов посвященных проблемам музыкальноэ
14295. МУЗЫКАЛЬНОЕ ОБРАЗОВАНИЕ В ЭПОХУ ВОЗРОЖДЕНИЯ 49.5 KB
  МУЗЫКАЛЬНОЕ ОБРАЗОВАНИЕ В ЭПОХУ ВОЗРОЖДЕНИЯ Эпоха Возрождения Ренессанса – фр. отразила социальные изменения при переходе от феодального к буржуазному обществу. Эпоха эта не имеет точных исторических границ но ее характерные черты проявились уже в 14 в. в Италии и Фр...