Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лекция 2 Циклы В РНР реализованы два типа циклов- while и for

Работа добавлена на сайт samzan.net:


PHP. Лекция 2

Циклы

В РНР реализованы два типа циклов: 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(имя файла) – удаление файла

5




1. Кіріспе Экологияны~ ~алыптасуы ж~не дамуыны~ ~ыс~аша тарихы Лекции
2. БЕСЕДЫ О ЛИЧНОМ 10 мастерклассов Елены Рыхальской Любовь в жизни женщины- путь от расставания и один
3.  Формальнаrdquo; автокореляція На форму автою вказує значення статистики ДурбінаВатсона при застосуван
4. Монтескье Шарль Луи
5. темах ИС. Электронная коммерция
6. is unit of grmmr bsed on morphologicl opposition of grmmticl menings presented in grmmticl forms
7. Финансы и кредит Методическое пособие для студентов очного обучения специальност
8. 5Пятерочка место прохождения практики Выполнил- Студент 2 курса заочного отделения Гр
9. п Тумботино Рекомендации к оформлению паспорта учебного кабинета кабинет
10. Инфракрасное облучение Бальнеотерапия
11. Контрольна робота вирішення задач.
12. Рико Есть 50 штатов и один федеральный округ созданный в качестве площадки для федеральной столицы Вашингт
13. І.Кужій ЗАТВЕРДЖУЮ Заступник директора з НВР Я
14. Тема 1 Персонал предприятия как объект управления
15. 111
16. КОНТРОЛЬНАЯ РАБОТА по курсу- ОСНОВЫ ОПТОВОЙ ТОРГОВЛИ вариант 2 Стта
17. Учет расчета с бюджетом по налогам и сборам
18. Избирательное право и избирательные системы в РФ
19. на тему- Государственный внутренний долг Российской Федерации.
20. ЛЕКЦИЯ 8 Мировой рынок и международная торговля Появление крупной машинной индустрии определяет резкий р