Создание функций в PHP
Наконец-то, мы подобрались к теме создания функций в PHP. Тема эта безумно важная и, пожалуй, функции в PHP создаются очень часто. И, разумеется, создавать их Вам придётся. Напоминаю, что функция - это блок кода, который является определённым шаблоном, действие которого зависит от входных параметров. А теперь переходим к созданию и использованию функций в PHP.
Давайте с Вами напишем пример элементарной функции, которая просто печатает "Hello World":
<?php
function printHello() {
echo "Hello World";
}
printHello();
?>
В данном примере мы создали функцию с именем "printHello" без параметров (внутри круглых скобок ничего нет), затем мы в фигурных скобок написали код функции. То есть в данном случае, мы выводим строку. За пределами функции мы её вызываем. Как видите, всё очень просто. Но цена данной функции равна нулю, хотя бы потому, что она работает всегда одинаково. Безусловно, такое бывает нужно, поэтому не надо думать, что такой пример функции вообще бессмыслен. Однако, чаще всё-таки функция требует параметра, и давайте с Вами создадим функцию, которой будем передавать строку, а затем эту строку выводить:
<?php
function printHello($str) {
echo $str;
}
printHello("Hello World!!!");
?>
Здесь мы создали функцию, но уже с параметром. И дальше значение этого параметра мы и выводим через echo. За пределами функции printHello() мы её вызываем и передаём строку "Hello World!!!". Как видите, и тут всё просто.
И последнее, что хочется сказать, так это о параметрах по умолчанию, которые позволяют создавать функции с переменным числом параметров. Предлагаю решить такую задачу: создать функцию, которая будет принимать в качестве первого параметра массив, а в качестве второго параметра - булевскую переменную (true или false), значение по умолчанию которой будет false:
<?php
function printArray ($arr, $bool = false) {
$str = "";
for ($i = 0; $i < count($arr); $i++)
$str .= "Элемент $i = $arr[$i]<br />";
if ($bool) return $str;
echo $str;
}
$a = array(15, 12, 13, 14);
printArray($a);
$str = printArray($a, true);
echo $str;
?>
Здесь смысл следующий: задача функции - формировать из массива строку, то есть просто превратить массив в строковый тип. В данном примере, самое интересное - это параметр bool, который имеет значение по умолчанию. Если она false (как по умолчанию, то есть если не указывали иного значения), то строка сразу печатается в браузере, а если передали true (как при втором вызове функции), то строка возвращается (return $str) функцией. Вот такой простой пример на создание функций с параметрами по умолчанию.
-
- Михаил Русаков
Комментарии (22):
Как я понял в примере 2, что printHello("Hello World!!!"); применяет значение для переменной $str, обозначенной функцией function printHello($str)? Тогда если допустим попытаться вывести переменную под printHello("Hello World!!!"); например простым echo $str; не выводится повторно, почему?
Ответить
Если Вы хотите вот так: <?php printHello("Hello World!"); echo $str; ?> То так работать и не будет, так как переменная $str не определна.
Ответить
Здравствуйте Михаил! Я уже большую часть ваших статей прочитал, но до сих пор не могу понять как их можно применить на практике при создании сайта
Ответить
Надо не только читать, но ещё и что-то делать, какие-нибудь упражнения придумывать и делать их. Самое элементарное, хотя бы скопировать код из статьи и посмотреть, как он работает. Может быть, как-нибудь отредактировать его. Вот когда будете это делать, тогда и появится мысли, как это можно использовать при создании сайта.
Ответить
Здравствуйте .По какому учебнику php учились вы?
Ответить
PHP 5 в подлиннике. Автор: Дмитрий Котеров.
Ответить
функции на любом сайте пригодятся. А уж "мигающая кнопка" вряд ли)
Ответить
Михаил, а можете ли вы сделать статью/видеоурок о том, как сделать, чтобы если человек допустим в комментарии введёт слово "Превет", то оно автоматически исправлялось бы на "Привет". Т.е. функцию исправления ошибок
Ответить
Я запишу Вашу идею, спасибо. Может быть в дальнейшем реализую.
Ответить
Как создать доску обьявлений без регистрации?
Ответить
Для этого надо знать PHP и MySQL, затем написать движок.
Ответить
Загугли "Myrusakov чат" и измени стили єтого чата. Будет выглядеть как доска обьявлений.
Ответить
Здравствуйте Михаил, может я со своим вопросом забегаю немного вперед, но посоветуйте пожалуйста, как решить следующую проблему. В движке, внутри класса есть функция открытия страниц выглядит она вот так: return include "(имя страницы).php" В файле index.php написано следующее: echo ($(класс)->(эта функция)); В итоге выводится нормальная страница, но на конце всегда стоит '1'. Я так понял это результат выполнения функции include (true). Вопрос как убрать '1', желательно не используя строковые функции?
Ответить
Не надо писать return, просто include и всё.
Ответить
Спасибо Михаил, ваш совет очень помог
Ответить
Здравствуйте Михаил, а можно ли как-нибудь обрабатывать переменные, объявленные вне функции, внутри функции?
Ответить
Да, для этого есть глобальные переменные. Достаточно её объявить за пределами функции, а внутри функции написать global $имя_переменной; И дальше её можно использовать внутри функции.
Ответить
Спасибо
Ответить
Михаил, я не понял как работает эта строка . Что такое count и что делает тут знак меньше. И пожалуйста, в ответе дайте ссылки на уроки где можно подробно это все самому изучить. Спасибо. for ($i = 0; $i < count($arr); $i++)
Ответить
Здравствуйте, Алексей. Рекомендую изучить курс "PHP & mySQL" с нуля до гуру. Ссылка на курсы: http://srs.myrusakov.ru/php
Ответить
эта строка это цикл. $i=0 это значение переменной; $i < count($arr) - если переменная і меньше массива arr; $i++ - чтобы при выполнении - переменная і увеличиванась на 1
Ответить
Давненько в этой теме ни кто не отписывался. Я, по урокам Михаила, и не только, создал свой домашний сайт на php. Научился создавать базы данных, таблицы в них, выводить данные на страницы сайта (не без проблем конечно). На одном из сайтов наткнулся на упоминание о функции (dop_function.php), то есть, на том сайте сказано, что, данную функцию можно применять для скрытия информации для незарегистрированных пользователей. У меня возник вот такой вопрос/просьба: Можно попросить написать конкретный пример реализации функции скрытия контента?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.