Similar presentations:
Користувальницькі функції
1.
PHPЛекція №3
2.
Користувальницькі функції---------------------------------------------------------------------------------------------------------------------------------------------
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
3.
<?phpfunction test($param1, $param2) {
$result = $param1 * $param2 - 13;
return $result;
}
echo test(12,44); //515
4.
Те ж саме<?php
function test($param1, $param2) {
return $param1 * $param2 - 13;
}
echo test(12,44); //515
5.
{echo $param2 . ' ' . $param1.PHP_EOL;
}
test('aa','asdasdasd');
echo test(12, 44);
var_dump(test('as',33.1));
?>
Output:
aa asdasdasd
12 44
as 33.1
6.
{echo $param2 . ' ' . $param1.PHP_EOL;
return $param1.' та '.$param2;
}
test('aa','asdasdasd');
echo test(12, 44).PHP_EOL;
var_dump(test('as',33.1));
?>
Output:
asdasdasd aa
44 12
12 та 44
33.1 as
7.
<?phpfunction takes_array($input)
{
echo '$input[0] + $input[1] = '. $input[0] + $input[1];
}
?>
8.
Передача параметрів як посилань------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
function inc(&$param)
{
$param++;
}
$o=123;
inc($o);
echo $o.PHP_EOL;//124
inc($o);
9.
Значення за замовчуванням<?php
function welcome($name='user')
{
return 'Welcome to hell, '.$name.PHP_EOL;
}
echo welcome();
//Welcome to hell, user
echo welcome('Маріяка');//Welcome to hell, Маріяка
10.
<?phpfunction welcome()
{
return 'Welcome'.PHP_EOL;
}
echo welcome();
echo welcome(1, 123, 14145, 515, 15, 'as', 'asasdasdasasd', 'ff');
?>
Output:
Welcome
Welcome
11.
func_num_args()повертає
аргументів, переданих функції
func_get_arg(номер аргумента)
вказаний аргумент
кількість
- повертає
func_get_args() - повертає масив переданих
аргументів
12.
if(func_num_args()){$result=null;
foreach(func_get_args() as $arg){
$result.='Welcome, '.$arg.PHP_EOL;
}
}
return $result;
}
echo welcome();
echo welcome('Вася', 'Марта', 'Міша', 'Назар', 'Рома', 'шановний абітурієнт');
?>
Welcome %)
Welcome, Вася
Welcome, Марта
13.
<?phpfunction print_one()
{
echo 1;
}
$func_name='print_one';
$func_name(); //1
14.
Анонімні функції<?php
$hoho = function($name)
{
echo 'hoho '. $name.PHP_EOL;
};
$hoho('гиги');
$hoho('PHP');
?>
15.
Приклад використання анонімнихфункцій
<?php
echo preg_replace_callback('~-([a-z])~', function
($match) {
return strtoupper($match[1]);
}, 'hello-world');
// виведе helloWorld
?>
16.
17.
Ще про рекурсію...1. Начальник завжди правий.
2. Якщо начальник не правий, дивитися п. 1.
18.
<?php// Приклад тернарного оператора
$i=0;
$result = $i ? 'start' : 'stop';
// Те ж саме при використанні if/else
if ($i) {
$result = 'start';
} else {
$result = 'stop';
}
?>
19.
Рекурсія на практиці<?php
function factorial($number)
{
return !$number ? 1 : $number * factorial($number - 1);
}
echo factorial(5); // 120
echo factorial(123);//1.2146304367025E+205
echo factorial(0); // 1
20.
ДОКУМЕНТАЦІЯhttp://ua2.php.net/manual/ru/ - онлайн
http://ftp.ntua.gr/mirror/PHP/manual/ - оффлайн
21.
Д/З ознайомитися (прочитати список і щоробить, щоб орієнтуватися що є) з функціями
наступний розділів:
PHP Опции и Информация
Управление функциями
Функции для работы с переменными
Misc. — Разные функции
Строки
Многобайтные строки
Массивы
Дата и Время
Каталоги
Функции для работы с файловой системой
22.
Дата та часstring date ( string $format [, int $timestamp = time() ] )
<?php
echo date('m/d/Y H:i:s').PHP_EOL;
//09/23/2014 17:00:54
echo date('d M Y H:i:s').PHP_EOL;
//23 Sep 2014 17:00:54
echo time().PHP_EOL;// timestamp
//1411480854
// це є кількість секунд з 1.01.1970 00:00 UTC
echo date('m/d/Y H:i:s', time()-60).PHP_EOL;
//09/23/2014 16:59:54
echo date('m/d/Y H:i:s', 0).PHP_EOL;
//01/01/1970 03:00:00
Ще подивіться про strtotime()
date_default_timezone_set('UTC');
echo date('m/d/Y H:i:s', 0).PHP_EOL;
23.
if ($dh = opendir($dir)) {while (($file = readdir($dh)) !== false) {
echo "файл: $file : тип: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>
Або ж
<?php
$dir = '../../';
$files = scandir($dir);
if($files!== false){
foreach($files as $filename){
echo $filename.PHP_EOL;
}
}
24.
ранку”(6-12 год), “Доброго дня” (12-18), “Доброго вечора”(1824), “Доброї ночі”(00-06), в залежності від того, яка година.2. Написати програму виводу форматованої дати (дата
публікації чогось). Якщо опубліковано менше хвилини тому, то
писати скільки секунд тому написано; якщо менше години тому,
скільки хвилин тому; Якщо менше 12 годин тому, то написати
скільки годин тому. Якщо 12-24 годин тому, то написати
“Сьогодні о **”(врахувати, що якщо зараз третя ночі, то 12
годин тому це буде вчора). Якщо вчора, то “Вчора о **”, інакше
дату в форматі “24 січня 2001 в 14:33”.
P.S: Формат F виводить January, а не січень.
3. Написати функцію, яка б форматувала вивід байтів (12 Б,
4.36 кБ, 1.14 МБ, 18.55 ГБ, 4.11 ТБ)
4. Написати 2 функції: 1) підраховує розмір файлів в папці (і в
підпапках теж); 2) кількість файлів і папок, повертає масив зі
значеннями.
5. Реалізувати рекурсивний перегляд директорії (вивести то на
1 сторінці в браузері). Якщо папка — то вивести її ім’я, кількість
файлів та вміст, якщо файл — то його ім’я, розмір та дату