Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Переменное число параметров

Читайте также:
  1. II. Числовые характеристики выборки.
  2. III. Умножение на двузначное и трехзначное число
  3. N - общее число единиц совокупности
  4. Oi-Ha-Hou есть Тьма, Беспредельность, или же Не-Число, Ади-Нидана, Свабхават – .
  5. RBC - число эритроцитов в млн. в 1 мм3 крови.
  6. А46. Кратно увеличенное по отношению к гаплоидному набору (2n, 3n, 4n, и т.д.) число хромосом называется
  7. АВ блокада I степени за счет дву­сторонней блокады ножек пучка Ги­са. Изолированно встречается в 7% случаев этой блокады [Narula О., 1979]; общее же число случаев такой

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

Пример:

<?php
function Srec ($w =10, $h =5){
$S = $w * $h;
return $S;
}
echo Srec (); //возвращает 50
echo "<br>";
echo Srec (6); //возвращает 30
?>

Внимание! При задании параметров в определении функций значений по умолчанию, последние должны быть простыми значениями, а не переменными, вычисляемыми выражениями или вызовами функций и методов объектов.

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

При создании функций, способных работать с переменными по длине списком параметров, можно применить следующие встроенные функции:

· func_num_args() — возвращает количество параметров, переданных функции, из которой она была вызвана.

Пример:

<?php
function Srec (){
if (func_num_args ()= =0){ //если нет параметоров
$w =10;
$h =5;
}
if (func_num_args ()= =1){//если один параметр
$h =5;
}
return $w * $h;
}
echo Srec (); //возвращает 50
echo "<br>";
echo Srec (6); //возвращает 0
?>

· func_get_args() — возвращает массив значений параметров, переданных функции, из кторой она была вызвана.

Пример:

<?php
function Srec (){
/*значения параметров по умолчанию: */
$w =10;
$h =5;
$args = func_get_args (); //массив значений параметров
$narg = count (func_get_args ());//длина массива значений параметров
if ($narg = =1) $w = $args [0];
if ($narg ==2) { //если два параметра
$w = $args [0];
$h = $args [1];
}
return $w * $h;
}
echo Srec (); //возвращает 50
echo "<br>";
echo Srec (6); //возвращает 30
echo "<br>";
echo Srec (6,4); //возвращает 24
?>

· func_get_arg(номер параметра) — возвращает значение параметра, указанного с помощью его номера. Если номер_параметра превышает длину списка переданных параметров, то данная функция возвращает false. Обычно эта функция используется совместно с func_num_args() и func_get_args().

Пример:

<?php
function Srec (){
echo "w=". func_get_arg (0)."h=". func_get_arg (1);
}
echo Srec (); //w = h
echo "<br>";
echo Srec (2); // w = 2 h =
echo "<br>";
echo Srec (6,4); // w = 6 h = 4
?>

Пример использования двух функций:

<?php
function myRec ()
{ for ($i =0; $i < func_num_args (); $i ++) {
for ($j =0; $j < $i; $j ++);
echo func_get_arg ($i)."<br>\n"; // выводим элемент
}
}
// отображаем строки
echo myRec ("Меркурий", "Венера", "Земля", "Марс");
?>

В окне веб-браузера это будет выглядеть ТАК.

Обратите внимание на то, что при описании Srec() и myRec() мы указали пустые скобки в качестве списка параметров, словно функции не получает ни одного параметра. На самом деле в PHP при вызове функции можно указывать параметров больше, чем задано в списке аргументов — в этом случае никакие предупреждения не выводятся (но если фактическое число параметров меньше, чем указано в описании, PHP выдаст сообщение об ошибке). "Лишние" параметры как бы игнорируются, в результате пустые скобки вSrec() и myRec() позволяют нам в действительности передать им сколько угодно параметров.

ООП основные понятия

Что такое объектно-ориентированное программирование?

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

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

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

Зачем использовать ООП?

Процедурный и объектно-ориентированный - это два разных способа сделать одно и то же. Нельзя сказать, что один из них лучше другого - каждый пишет, как ему нравится, так что вы даже можете легко комбинировать эти два подхода в одном скрипте.

Однако, вот некоторые преимущества ООП для разработчиков:

· Легче отражать реальные ситуации: как я отметил выше, объекты отражают реальные сущности - люди, товары, карточки, статьи в блогах и др. Это во многом упрощает задачу, когда вы только начинаете проектировать свое приложение, так как назначение каждого объекта, как и цель отношений между объектами, будет ясно и понятно.

· Легче писать модульные программы: ООП предполагает написание модулей. Разделяя код на модули, вам будет легче им управлять, дебажить и расширять его.

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

17. ООП в PHP: классы, конструкторы, интерфейсы, константы.

18. ООП В PHP: абстрактные классы и методы, спецификаторы доступа, наследование.

19. ООП В PHP: область видимости, статические члены класса, специальные методы.


Дата добавления: 2015-08-18; просмотров: 79 | Нарушение авторских прав


Читайте в этой же книге: Селекторы CSS | Каскадирование css. | Свойства css с кратким описанием | Написание формы пользовательского интерфейса | Настройка формы для связи с сервером | Таблицы в HTML | Оператор выбора | Внимание | Что можно и нельзя делать с массивами | Примеры |
<== предыдущая страница | следующая страница ==>
Особенности пользовательских функций PHP| Обработка ошибок и исключений в PHP

mybiblioteka.su - 2015-2024 год. (0.012 сек.)