Oc-windows.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Параметры по умолчанию php

Параметры по умолчанию php

Передача аргументов пользовательским функциям

При объявлении функции можно указать список параметров, которые могут передаваться функции, например:

function funct ( $a , $b , /* . */ $z ) < . >;
?>

При вызове функции funct() нужно указать все передаваемые параметры, поскольку они являются обязательными. В PHP пользовательские функции могут обладать необязательными параметрами или параметрами по умолчанию, но об этом позже.

Передача аргументов по ссылке

Согласно сложившимся традициям, во всех языках программирования есть два вида аргументов функций:

Функции не могут изменить параметр-значение, то есть он доступен функции «только для чтения» — она может его использовать, но не более. В качестве параметра-значения необязательно указывать переменную, можно указать само значение, отсюда название — параметр-значение.

По умолчанию аргументы в функцию передаются по значению (это означает, что если вы измените значение аргумента внутри функции, то вне ее значение все равно останется прежним). Приведем пример:

function funct ( $string )
<
echo «

Параметр = $string

$str = 777 ;
funct ( 777 );
funct ( $str );

// Функция ‘funct’ выведет строку ‘Параметр = 777’ дважды

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

Если вы хотите разрешить функции модифицировать свои аргументы, вы должны передавать их по ссылке.

Если вы хотите, что бы аргумент всегда передавался по ссылке, вы должны указать амперсанд (&) перед именем аргумента в описании функции:

function funct (& $string )
<
$string .= ‘а эта внутри.’ ;
>
$str = ‘Эта строка за пределами функции, ‘ ;
funct ( $str );
echo $str ; // Выведет ‘Эта строка за пределами функции, а эта внутри.’
?>

Параметры по умолчанию

При программировании часто возникает необходимость создания функции с переменным числом параметров. Тому есть две причины:

  • Параметров слишком много. При этом нет смысла каждый раз указывать все параметры;
  • Функции должны возвращать значения разных типов в зависимости от набора параметров.

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

function makecup ( $type = «Чая» )
<
return «Сделайте чашечку $type.n» ;
>
echo makecup ();
echo makecup ( «Кофе» );
?>

Результат работы приведенного скрипта будет таким:

Сделайте чашечку Чая
Сделайте чашечку Кофе

PHP также позволяет использовать массивы и специальный тип NULL в качестве значений по умолчанию, например:

function makecup ( $types = array( «Кофе» ), $Maker = NULL )
<
$device = is_null ( $Maker ) ? «сахаром» : $Maker ;
return «Сделайте чашечку » . join ( «, » , $types ). » с $device.n» ;
>
echo makecup ();
echo makecup (array( «Кофе» , «Чая» ), «сливками» );
?>

Рассмотренный скрипт выведет следующее:

Сделайте чашкчку Кофе с сахаром . Сделайте чашечку Кофе, Чая с сливками.

Значение по умолчанию должно быть константным выражением.

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

function makecup ( $type = «чая» , $cond )
<
return «Сделайте чашечку $type $cond.n» ;
>

echo makecup ( «горячего» ); // Не будет работать так, как мы могли бы ожидать
?>

Результат работы приведенного выше скрипта будет примерно следующим:

Warning: Missing argument 2 for makecup() in c:inetpubphp.sutest.php on line 2
Сделайте чашечку горячего .

Теперь видоизменим рассмотренный скрипт, исправив в нем ошибки:

function makecup ( $cond , $type = «чая» )
<
return «Сделайте чашечку $type $cond.n» ;
>

echo makecup ( «горячего» ); // Теперь наш скрипт работает корректно!
?>

Результат работы исправленного скрипта будет выглядеть следующим образом:

Сделайте чашечку чая горячего.

Внимание! Начиная с PHP 5, значения по умолчанию могут быть переданны по ссылке!

Переменное число аргументов в функциях

Иногда мы точно не знаем, сколько параметров будет передано нашей функции. Специально для такого случая разработчики PHP предусмотрели возможность использования переменного числа аргументов.

Реализация этой возможности достаточно прозрачна и заключается в использовании функций func_num_args() , func_get_arg() и func_get_args() .

Рассмотрим возможности рассмотренных стандартных функций:

Стандартная функция func_num_args() возвращает колличество аргументов, переданных пользовательской функции:

function funct ()
<
$numargums = func_num_args ();
echo «Колличество аргументов : $numargumsn» ;
>

funct ( 1 , 2 , 3 ); // Скрипт выведет ‘Колличество аргументов: 3’
?>

Стандартная функция func_get_arg() возвращает элемент из списка переданных пользовательской функции аргументов:

function funct ()
<
$numargs = func_num_args ();
echo «Колличество аргументов: $numargs
n» ;
if ( $numargs >= 2 ) <
echo «Второй аргумент : » . func_get_arg ( 1 ). «
n» ;
>
>

Стандартная функция func_get_args() возвращает массив аргументов, переданных пользовательской функции:

function funct ()
<
$numargs = func_num_args ();
echo «Колличество аргументов : $numargs
n» ;
if ( $numargs >= 2 ) <
echo «Второй аргумент: » . func_get_arg ( 1 ) . «
n» ;
>
$arg_list = func_get_args ();
for ( $i = 0 ; $i $numargs ; $i ++) <
echo «Аргумент $i is: » . $arg_list [ $i ] . «
n» ;
>
>

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

Настройка файла php.ini

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

Читать еще:  Создаем базу данных mysql php

Интерпретатор php может поставляться в виде модуля для Apache, выполнять скрипты из командной строки или в виде отдельного сервиса php-fpm. Эти сервисы отличаются своими возможностями, и предназначением, но для любого вида интерпретатора нужно задать базовые настройки, например, рабочая папка, включенные расширения, отображение ошибок и так далее. Все эти настройки задаются через файл php.ini. В этой инструкции мы рассмотрим как выполняется настройка файла php.ini в операционных системах Linux, хотя все информация подойдет и для Windows.

Если у вас еще не установлен интерпретатор языка программирования php, то вы можете ознакомиться со статьей установка lamp в Ubuntu 16.04.

Расположение и синтаксис php.ini

Для каждой версии интерпретатора конфигурационный файл php.ini находится в отдельной папке. Но все конфигурационные файлы находятся в папке /etc/php, например, /etc/php5:

Папка conf.d содержит общие настройки для различных расширений и модулей, они не будут нас сейчас интересовать. Более интересны следующие три папки — apache, cli и fpm. В них содержатся конфигурационные файлы php.ini для каждого из этих интерпретаторов.

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

Что касается синтаксиса файла, то он разделен на секции, сначала идет секция настройки php, которая разделена на подсекции в зависимости от типа настроек, дальше идут секции настройки разных модулей. Синтаксис самих настроек очень прост, он соответствует привычному синтаксису ini файлов. Строка начинается с имени настройки, затем следует знак равно, а за ним значение:

имя_настройки = значение_параметра

Символами [] обозначается имя секции, например, [PHP], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.

Настройка файла php.ini

Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:

sudo gedit /etc/php5/apache/php.ini

Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.

Вывод ошибок в php

Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:

Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:

Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак

. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:

Включите запись ошибок php в лог файл, если не выводите их на экран:

Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:

Ограничения ресурсов

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

По умолчанию максимальное время выполнения скрипта — 30 секунд, сделаем минуту:

Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:

Максимальное количество переменных в GET и POST:

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

Максимальный размер данных, передаваемых в POST запросе тоже ограничивается, размер по умолчанию — 8 Мегабайт:

Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:

С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:

Директории по умолчанию

Файл настройки php.ini позволяет указать пути в файловой системе по умолчанию для различных действий. Вы можете задать папки где система будет искать скрипты, если вы попытаетесь подключить их с помощью инструкции include:

Читать еще:  Php stream socket client

Папка с модулями php:

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

Загрузка файлов

Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:

Максимальный размер загружаемого файла:

Максимальное количество файлов, которые может загрузить один скрипт:

Настройка php.ini практически завершена, нам остались лишь расширения.

Настройка расширений

Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.

Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:

extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so

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

Выводы

В этой статье мы рассмотрели как выполняется настройка php на сервере или обычном компьютере для разработки веб-сайтов. Файл настроек php имеет довольно простую структуру и с ним довольно не сложно справиться. После завершения всех настроек и сохранения изменений не забудьте перезагрузить веб-сервер или сервис php-fpm.

Вообще говоря, php-fpm это отдельная тема, потому что там есть много дополнительных настроек, и, возможно, мы рассмотрим его в одной из следующих статей. Если у вас остались вопросы, спрашивайте в комментариях!

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

PHP занятие 5. Функции языка

Встроенные php функции

Функция — фрагмент кода программы, который можно выполнять многократно в любом месте данной программы.

Все функции языка PHP подразделяются на:

Встроенные функции — это предусмотренные синтаксисом языка конструкции, выполняющие конкретные действия. Примером могут служить рассмотренные ранее функции echo() и print() .

Кроме того, есть функции для работы с изображениями, функции обработки строк, для работы с датами и временем, а также для работы с базами данных. Некоторые из них будут рассмотрены в последующих уроках.

Что необходимо знать про любые функции:

  • после названия функции всегда ставятся круглые скобки (могут быть пустые или с аргументами функции внутри, перечисленными через запятые);
  • функция может принимать информацию из программы через список аргументов, разделенных запятыми (аргументы читаются слева направо);
  • если в функцию передаются аргументы не того типа, на который она «рассчитывает» (например string вместо array ), то будет выдаваться либо NULL либо ошибка;
  • для вызова функции достаточно написать ее имя и список фактических аргументов в круглых скобках.

Рис. 5.1. Пример использования встроенных функций php

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

Пользовательские функции — те, которые не предусмотрены синтаксисом языка, а созданы пользователем в целях решения поставленной задачи.

// описание функции function sayHello()< echo "Привет!
«; > // вызов функции sayHello(); // проверка существования функции if (function_exists(«sayHello»))

Результат:

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

Результат:

Пример иллюстрирует, что средства php не позволяют создавать локальных функций, т.е. которые будут «видны» только в определенных местах кода программы. В нашем случае function2() должна быть локальной, т.е. область ее видимости — только функция function1() . Вызывая локальную функцию из общей программы, должна выдаваться ошибка. Но в php данный механизм отсутствует, и ошибки нет. Таким образом обе функции в примере глобальные.

Создание функции php с аргументами

Рассмотрим синтаксис функции с аргументами на примере

// описание функции function sayHello($name)< echo "Привет, $name!
«; > // вызов функции вариант 1 sayHello(«Вася»); // вызов функции вариант 2 $name=»Вася»; sayHello($name); // вызов функции вариант 3 $myFunc=»sayHello»; // здесь круглые скобки не нужны! $myFunc(«Вася»);

Все три способа вызова функции равнозначны.

Примечание: степень в php вычисляется при помощи функции pow()
pow ($a, $b); где $a — число, $b — степень

Передача аргументов по ссылке

Традиционно аргументы в функцию передаются по значению, т.е. если значение аргумента изменить внутри самой функции, то в общей программе с этим аргументом ничего не произойдет, он останется прежним (внутри функции аргумент локален, т.е. «не виден» на уровне общей программы).

Рис. 5.2. Локальные и глобальные переменные в php

Рис. 5.3. Передача аргумента по ссылке

function add_str(&$str2) < $str2 .= 'и кое-что еще.'; >$str1 = ‘Просто строка, ‘; add_str($str1); echo $str1; // выведет ‘Просто строка, и кое-что еще.’

  1. Опишите функцию getTable()
  2. Задайте для функции три аргумента: cols , rows , color

Задание 2

  1. Скопируйте код, отрисовывающий таблицу умножения из лабораторной работы предыдущего урока
  2. Вставьте скопированный код в тело функции getTable()
  3. Измените код таким образом, чтобы таблица отрисовывалась в зависимости от входящих параметров cols , rows и color

Задание 3

Отрисуйте таблицу умножения вызывая функцию getTable() с различными параметрами

Аргументы по умолчанию

В php в пользовательских функциях можно задавать значения по умолчанию для аргументов. Т.е. если в программе не передать значение аргумента, то аргумент примет то значение, которое установлено по умолчанию.

Читать еще:  Php printf примеры

Рис. 5.4. Значение по умолчанию

function sayHello($p,$name = «Гость»)< echo "$p, $name!
«; > sayHello(«Привет»,»Вася»); // Привет, Вася! sayHello(«Здравствуйте»); // Здравствуйте, Гость! sayHello(«Привет»,null); // Привет, !

  1. Откройте предыдущее задание с отрисовкой таблицы в функции. Измените входящие параметры функции gettable() на параметры по умолчанию

Задание 5

  • Отрисуйте таблицу умножения вызывая функцию getTable() без параметров
  • Отрисуйте таблицу умножения вызывая функцию getTable() с одним параметром
  • Отрисуйте таблицу умножения вызывая функцию getTable() с двумя параметрами

    Возвращение значений функцией, Return

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

    Внутри такой функции используется оператор возврата return (с англ. «вернуть»), после которого указывается возвращаемое значение (или переменная, массив, выражение и т.п.)

    Вызов такой функции осуществляется либо через присваивание переменной, либо сразу через вывод на экран.

    function sum($a, $b) < return $a + $b; >// 1 вариант вызова echo sum(1, 2) ; // 2 вариант вызова $x=sum(1, 2); echo $x;

    Задание 1

    1. Опишите функцию getMenu()
    2. Задайте для функции первый аргумент menu , в него будет передаваться массив, содержащий структуру меню
    3. Задайте для функции второй аргумент vertical со значением по умолчанию равным TRUE (логический тип данных — true-истина, false-ложь).

    Данный параметр указывает, каким образом будет отрисовано меню — вертикально или горизонтально

    Задание 2

    1. Откройте файл c лабораторной работой с отрисовкой меню
    2. Скопируйте код, который создает массив menu и вставьте скопированный код в данный документ
    3. Скопируйте код, который отрисовывает меню
    4. Вставьте скопированный код в тело функции getMenu()
    5. Измените код таким образом, чтобы меню отрисовывалась в зависимости от входящих параметров menu и vertical

    Задание 3

    1. Отрисуйте вертикальное меню вызывая функцию getMenu() с одним параметром
    2. Отрисуйте горизонтальное меню вызывая функцию getMenu() со вторым параметром равным FALSE
    3. Сохраните код в отдельном файле

    Функции с параметрами, динамические вызовы, создание функции в PHP

    Функции PHP похожи на другие языки программирования. Функция представляет собой фрагмент кода, который принимает еще один вход в виде параметра и выполняет некоторую обработку и возвращает значение.

    Вы уже видели много функций, таких как fopen() и fread() и т. Д. Это встроенные функции, но PHP дает вам возможность создавать свои собственные.

    Есть две части, которые должны быть понятны вам —

    • Создание функции PHP
    • Вызов функции PHP

    На самом деле вам вряд ли нужно создавать свою собственную функцию PHP, потому что уже существует более 1000 встроенных функций библиотеки, созданных для разных областей, и вам просто нужно вызывать их в соответствии с вашими требованиями.

    Создание функции PHP

    Его очень легко создать собственную функцию PHP. Предположим, вы хотите создать функцию PHP, которая просто напишет простое сообщение в вашем браузере, когда вы его назовете. Следующий пример создает функцию writeMessage(), а затем вызывает ее сразу после ее создания.

    Обратите внимание, что при создании функции его имя должно начинаться с функции ключевого слова, и весь код PHP должен быть помещен внутри скобок <и>, как показано в следующем примере ниже —

    На этом отобразится следующий результат —

    Вы действительно хороший человек, хорошо проводите время!

    Функции PHP с параметрами

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

    На этом отобразится следующий результат —

    Сумма двух чисел : 30

    Передача аргументов по ссылке

    Можно передавать аргументы в функции по ссылке. Это означает, что ссылка на переменную управляется функцией, а не копией значения переменной.

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

    В следующем примере изображены оба случая.

    На этом отобразится следующий результат —

    Исходное значение — 10
    Исходное значение — 16

    Функции PHP, возвращающие значение

    Функция может возвращать значение с помощью оператора return в сочетании со значением или объектом. return останавливает выполнение функции и отправляет значение обратно вызывающему коду.

    Вы можете вернуть более одного значения из функции с использованием возвращаемого массива ( 1,2,3,4) .

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

    На этом отобразится следующий результат —

    Возвращаемое значение из функции: 30

    Установка значений по умолчанию для функциональных параметров

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

    Это приведет к следующему результату —

    Динамические вызовы функций

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

  • Ссылка на основную публикацию
    Adblock
    detector