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


 

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

28146. Концепция В. Дильтея 37 KB
  В период открытого кризиса его описательная психология как наука о духе занимала одно из центральных мест. Дильтей считал что господствовавшая психология – атомистическая элементаристическая – не дает адекватной картины духовной жизни человека она строится на объяснительных методах заимствованных из естествознания и как наука о личности должна быть отвергнута. Описательная психология рассматривает также развитие личности каждый этап которого определяется характерной для него ценностью все более возрастающей. Описательная психология по...
28147. Динамика становления психологической культуры у субъектов образования 73.5 KB
  Однако в психологической науке отсутствует целостное представление о данном феномене. Он выделяет следующие компоненты психологической культуры: Презентативный компонент его образует комплекс представлений о природе психики ее возможностях закономерностях функционирования; стереотипы восприятия понимания интерпретации психических феноменов в том числе индивидуальных особенностей психики. Другими авторами выделяются когнитивный процессуально – деятельностный и эмоциональнооценочный компоненты психологической культуры.
28148. Уровни нравственного развития личности (по Колбергу) 128 KB
  Ребёнка любят и он это чувствует. Все потребности ребёнка быстро удовлетворяются. Ребёнок считает что мир – это уютное место а люди любят ребёнка людей можно любить и им можно доверять. 2 готовность ребёнка без тревоги и гнева переносить исчезновение матери из поля зрения.
28149. Личностный смысл болезни 46 KB
  Личностный смысл болезни есть жизненное значение для субъекта обстоятельств болезни в отношении к мотивам его деятельности. Частично смысл задаётся выбранным мифом шаманские болезни особый дар блаженные – в отл от просто болезней. Существует целый спектр типов личностного отношения к болезни: болезнь как враг наказание слабость способ решения жизненных проблем и др.
28150. «Методика преподавания психологии»: чему и как учить 40.5 KB
  Добиться реализации данной цели на лекционных занятиях невозможно курс должен быть лекционносеминарским где на практических занятиях студенты могли бы рассматривать прикладные вопросы практики обучения связанные с сохранением психического здоровья учащихся с созданием благоприятного психологического климата на уроке с возможностями объективного оценивания эффективности образовательного процесса. Однако не учитывая изменения эмоционального состояния ребенка динамику состояния соматического здоровья нельзя судить о качестве учебного...
28151. Проблема психической нормы и патологии 44 KB
  Вопрос определения нормы и патологии является крайне сложным и затрагивает различные сферы человеческой деятельности от медицины и психологии до философии и социологии. Был совершён ряд попыток вывести критерии психической нормы в число которых включали соответствующую возрасту человека зрелость чувств адекватное восприятие действительности наличие гармонии между восприятием явлений и эмоциональным отношением к ним умение уживаться с собой и социальным окружением гибкость поведения критический подход к обстоятельствам жизни наличие...
28152. Периодизация интеллектуального развития ребёнка (по Ж.Пиаже) 33.21 KB
  Швейцарский теоретиккогнитивист Жан Пиаже 1896-1980 был пионером в этой области исследований. С точки зрения Пиаже интеллект не просто реагирует на раздражители: скорее он растет меняется и адаптируется к миру. Пиаже и других когнитивных психологов называют структуралистами поскольку их интересует структура мышления и то каким образом интеллект перерабатывает информацию. Напротив когнитивные структуры Пиаже являются абстрактными и гипотетическими.
28153. Теоретические и психотерапевтические концепции Роджерса и Франкла 63 KB
  Этот мир создаваемый человеком может совпадать или не совпадать с реальной действительностью так как не все предметы в окружении человека осознаются им. Говоря о структуре Я Роджерс пришел к выводу о том что внутренняя сущность человека его Самость выражается в самооценке которая является отражением истинной сути данной личности его Я. Исследования проведенные Роджерсом доказывали что успешная социализация человека его удовлетворение работой и собой коррелируют с Уровнем его самосознания. При этом Роджерс не только говорит о...
28154. История развития представлений на природу способностей 58.5 KB
  История развития представлений на природу способностей Само понятие способности ввел в науку Платон. Источник развития способностей помещается внутрь человека они обусловлены наследственным генетическим фактором. К теориям преформизма примыкают и воззрения испанского врача Хуана Уарте Исследование способностей к наукам 1575 год. Уарте также говорил о врожденности способностей: Пусть плотник не занимается земледелием а ткач – архитектурой; пусть юрист не занимается лечением а медик адвокатским делом; но пусть каждый занимается только...