4370

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

Контрольная

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

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

Русский

2012-11-18

93 KB

14 чел.

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


 

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

47498. Культура русской речи 1.17 MB
  Виноградова Культура русской речи Ответственные редакторы доктор филологических наук профессор Л. Ширяев Культура русской речи. Книга представляет собой первый академический учебник по культуре речи содержащий наиболее полный систематизированный материал по данной теме. В основе издания лежит принципиально новая теоретическая концепция культуры речи.
47499. Артикуляционная гимнастика в считалках 3.44 MB
  В пособии предложены эффективные упражнения для укрепления мышц артикуляционного аппарата. Упражнения сопровождаются иллюстрациями и стихотворным текстом. Упражнения сопровождаются забавными рисунками которые дети с удовольствием раскрасят и стихотворным текстом который сначала читает взрослый а затем по мере запоминания проговаривает ребенок.
47500. Маркетинг. Тестові та ситуаційні завдання 2.67 MB
  Самостійна робота у навчанні студентів ІЕУ ІОФ маркетингу. теоретичні методичні та практичні аспекти маркетингу Змістовий модуль Теоретичні та методичні основи маркетингу. Актуальність і практична необхідність вивчення і використання маркетингу в умовах ринкових відносин.
47502. Телекомунікаційні системи та мережі. Методичні вказівки 430 KB
  Містять рекомендації щодо змісту структури правил оформлення дипломного проекту а також методику організації роботи студентадипломника приведено порядок представлення дипломного проекту до захисту. ЗАГАЛЬНІ ПОЛОЖЕННЯ Дипломне проектування його мета і структура Дипломне проектування є заключним етапом навчання студентів у ВНЗ і має своєю метою: а систематизацію закріплення і розширення теоретичних і практичних знань за фахом та використання їх під час розвязання конкретних наукових технічних економічних і виробничих задач; б...
47503. СТАНДАРТ ПРЕДПРИЯТИЯ. МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1.54 MB
  Цели и задачи квалификационной выпускной дипломной работы Цели и задачи квалификационной работы магистра Этапы подготовки квалификационной работы Защита квалификационных работ РАЗДЕЛ СТРУКТУРА И СОДЕРЖАНИЕ КВАЛИФИКАЦИОННОЙ РАБОТЫ
47504. Методичні вказівки. Економіка підприємства 201.5 KB
  Гетьмана МЕТОДИЧНІ ВКАЗІВКИЗ НАПИСАННЯ ДИПЛОМНОЇ РОБОТИ для студентів спеціальності âЕкономіка підприємстваâ спеціалісти денної та заочної форми навчання Сімферополь 2012 Методичні вказівки і тематика дипломних робіт для студентів спеціальності âЕкономіка підприємстваâ підготовлена кафедрою економіки підприємства Кримського економічного інституту ДВНЗ Київський національний економічний університет ім. МЕТА І ЗАВДАННЯ ДИПЛОМНОЇ РОБОТИ Написання і захист дипломної роботи є заключним етапом технологічного процесу підготовки...
47506. Методи стиснення інформації 161.5 KB
  Текст складається з досить обмеженої кількості символів. Український алфавіт наприклад складається з 33 літер та невеликої кількості спеціальних символів на кшталт коми тире апострофа и тд. Якщо враховувати всі 256 символів то для не буде різниці в стисканні тестового чи exe файлу. Файл довжиною в 100 байт що має 6 різних символів в собі.