ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.05.2024
Просмотров: 135
Скачиваний: 0
$arr[] |
= "aa"; // додаємо новий елемент в |
масив. Його індексом (ключем) буде 3, |
а не 0 |
|
|
print_r($arr); |
|
|
$arr = |
array_values($arr); // переіндексуємо |
масив |
$arr[] |
= "bb"; // ключем цього елемента буде |
1 |
print_r($arr); ?>
Приклад 2.11. Перєїндексация масиву Результатом роботи цього скрипта буде:
Array ( [0] => а [1] => b [2] => с )
Array ( )
Array ( [3] => aa )
Array ( [0] => aa [1] => bb )
Тип object (об'єкти)
Об'єкти – тип даних, що прийшов з об'єктно-орієнтованого програмування (ООП). Згідно принципам ООП, клас
– це набір об'єктів, що володіють певними властивостями і методами роботи з ним, а об'єкт відповідно – екземпляр класу. Наприклад, програмісти – це клас людей, які пишуть програми, вивчають комп'ютерну літературу і, крім того, як всі люди, мають ім'я і прізвище. Тепер, якщо узяти одного конкретного програміста, Васю Іванова, то можна сказати, що він є об'єктом класу програмісти, володіє тими ж властивостями, що і інші програмісти, теж має ім'я, пише програми і т.п.
В PHP для доступу до методів об'єкту використовується оператор ->. Для ініціалізації об'єкту використовується вираз new, що створює в змінній екземпляр об'єкту.
<?php
//створюємо клас людина class Person
{
// метод, який навчає людину PHP function know_php()
{
echo "Тепер я знаю PHP";
}
}
37
$bob = new Person; // створюємо об'єкт класу людина $bob -> know_php(); // навчаємо його PHP
?>
Приклад 2.12. Об'єкти в PHP
Більш детально реалізацію принципів ООП в язиці PHP ми розглянемо в одній з наступних лекцій.
Тип resource (ресурси)
Ресурс – це спеціальна змінна, що містить посилання на зовнішній ресурс (наприклад, з'єднання з базою даних). Ресурси створюються і використовуються спеціальними функціями (наприклад, mysql_connect(), pdf_new() і т.п.).
Тип Null
Спеціальне значення NULL говорить про те, що змінна не має значення. Змінна вважається NULL, якщо:
їй була привласнена константа NULL ( $var = NULL );
їй ще не було привласнено яке-небудь значення;
вона була видалена за допомогою unset ().
Існує тільки одне значення типа NULL – регістронечутливе ключове слово NULL.
Рішення задачі
Тепер повернемося до задачі, яку ми поставили на самому початку лекції. Нагадаємо, що вона полягала в складанні листа різним людям з приводу різних подій. Спробуємо використовувати для вирішення цієї задачі вивчені засоби – змінні, оператори, константи, рядки і масиви. Залежно від одержувача змінюється подія і обіг, вказаний в листі, тому природно винести ці величини в змінні. Більш того, оскільки подій і людей багато, зручно використовувати змінні типу масив. Підпис в листі залишається постійним завжди, тому логічно задати її як константу. Щоб не писати дуже довгі і громіздкі рядки, використовуємо оператор конкатенації. Отже, ось що вийшло:
<?
//хай наш підпис буде константою define("SIGN" , "З пошаною, Вася");
//задамо масиви людей і подій
$names = array("Иван Іванович", "Петро Петрович", "Семен Семенович");
$events = array("f" => "день відкритих дверей", "o" => "відкриття виставки", "p" => "бал випускників");
// складемо текст запрошення
38
$str = "шановний (а) $names[0]."; $str .= "<br>Запрошуємо Вас на ". $events["f"];
$str .= "<br>" . SIGN;
echo $str; // виведемо текст на екран
?>
Висновок
Отже, в цій лекції ми познайомилися з основами синтаксису язика PHP, навчилися працювати із змінними різних типів, константами, операторами, познайомилися зі всіма існуючими в PHP типами даних. Кажучи про такі типи даних, як рядки і масиви, ми розібрали тільки самі основи. Ці конструкції настільки зручні і прості у використовуванні, що заслуговують окремої розмови. Подробиці будуть висловлені в подальших лекціях. Вирішуючи задачу, ми прагнули використовувати тільки наявні знання і не забігати вперед, тому рішення не дуже підходить для практичного вживання. В наступній лекції ми виправимо цей недолік і створимо більш універсальний шаблон електронного листа.
39
Лекція 3.
Тема: Управляючі конструкції
Мета: В лекції розглядаються умовні оператори (if, switch), робота з циклами (while, for, foreach) і використовування функцій include, require. Приклад – універсалізація листа залежно від ситуації і його відправка кожному з групи користувачів.
ПЛАН 1 Умовні оператори
2Цикли
3Оператори передачі управління
4Оператори включення
1 Умовні оператори
1.1 Оператор if
Це один з найважливіших операторів багатьох язиків, включаючи PHP. Він дозволяє виконувати фрагменти коду залежно від умови. Структуру оператора if можна представити таким чином:
if (вираз) блок_виконання
Тут вираз є будь-який правильний PHP-вираз. В процесі обробки скрипта вираз перетвориться до логічного типу. Якщо в результаті перетворення значення виразу істинне (True), то виконується блок_виконання. Інакше блок_виконання ігнорується. Якщо блок_виконання містить декілька команд, то він повинен бути взятий у фігурні дужки { }.
Правила перетворення виразу до логічного типу:
ВFALSE перетворяться наступні значення:
логічне False
цілий нуль ( 0 )
дійсний нуль ( 0.0 )
порожній рядок і рядок "0"
масив без елементів
об'єкт без змінних (детально про об'єкти буде розказано в одній з наступних лекцій)
спеціальний тип NULL
Вся решта значень перетвориться в TRUE.
<?
$names = array("Іван","Петро","Семен"); if ($names[0]=="Іван") {
echo "Привіт, Ваня!"; $num = 1;
$account = 2000;
}
if ($num) echo "<br>Іван перший в списку!"; $bax = 30;
if ($account > 100*$bax+3)
echo "Ця строчка не з'явиться на екрані, оскільки умова не виконана";
?>
40
Приклад 3.1. Умовний оператор if
1.2 Оператор else
Ми розглянули тільки одну, основну частину оператора if . Існує декілька розширень цього оператора. Оператор else розширює if на випадок, коли вираз, що перевіряється в if є невірним, і дозволяє виконати які-небудь дії за таких умов.
Структуру оператора if, розширеного за допомогою оператора else, можна представити таким чином: if (вираз) блок_виконання
else блок_виконання1
Цю конструкцію if...else можна інтерпретувати приблизно так: якщо виконана умова (тобто вираз = true), то виконуємо дії з блока_виконання, інакше – дії з блока_виконання1. Використовувати оператор else не обов'язково.
Подивимося, як можна змінити попередній приклад, враховуючи необхідність здійснення дій і у разі невиконання
умови.
<?
$names = array("Іван","Петро","Семен"); if ($names[0]=="Іван") {
echo "Привіт, Ваня!"; $num = 1;
$account = 2000; } else {
echo "Привіт $names[0]. А ми чекали Ваню :(";
}
if ($num) echo "Іван перший в списку!"; else echo "Іван не перший в списку?!"; $bax = 30;
if ($account > 100*$bax+3)
echo "Цей рядок не з'явиться на екрані оскільки умова не виконана"; else echo "Зате з'явиться цей рядок!";
?>
41
Приклад 3.2. Оператор else
1.3 Оператор elseif
Ще один спосіб розширення умовного оператора if – використовування оператора elseif.
elseif – це комбінація else і if . Як і else, він розширює if для виконання різних дій в тому випадку, якщо умова, що перевіряється в if, невірна. Але на відміну від else, альтернативні дії будуть виконані, тільки якщо elseif-умова є вірною. Структуру оператора if, розширеного за допомогою операторів else і elseif, можна представити таким чином:
if (вираз) блок_виконання elseif(вираз1) блок_виконання1
else блок_виконанняN
Операторів elseif може бути відразу декілька в одному if-блоці. Elseif-твердження буде виконано, тільки якщо попередня if-умова є False, всі попередні elseif-умови є False, а дана elseif-умова – True.
<?
$names = array("Іван","Петро","Семен"); if ($names[0]=="Іван") {
// якщо перше ім'я в масиві Іван echo "Привіт, Ваня!";
}elseif ($names[0] == "Петро"){
// якщо перше ім'я не Іван, а Петро echo "Привіт, Петя!";
}elseif ($names[0] == "Семен"){
// якщо перше ім'я не Іван, не Петро, а Семен echo "Привіт, Сєня!";
}else {
// якщо перше ім'я не Іван не Петроо і не Семен echo "Привіт $names[0]. А ти хто такий?";
}
?>
42
Приклад 3.3. Оператор elseif
Альтернативний синтаксис
PHP пропонує альтернативний синтаксис для деяких своїх управляючих структур, а саме для if, while, for, foreach і switch . В кожному випадку відкриваючу дужку потрібно замінити на двокрапку ( :), а закриваючу – на endif;, endwhile; і т.д. відповідно.
Наприклад, синтаксис оператора if можна записати таким чином:
іf (вираз): блок_виконання endif;
Значення залишається тим же: якщо умова, записана в круглих дужках оператора if, виявилася істиною, виконуватиметься весь код, від двокрапки " :" до команди endif;. Використовування такого синтаксису корисне при вбудовуванні php в html-код.
<?php
$names = array("Іван","Петро","Семен"); if ($names[0]=="Іван"):
?>
Привіт, Ваня!
<?php endif; ?>
Приклад 3.4. Використовування альтернативного синтаксису
Якщо використовуються конструкції else і elseif, то також можна задіювати альтернативний синтаксис:
<?php $a=1;
if ($a == 5):
print "а дорівнює 5"; print "...";
elseif ($a == 6):
print "а дорівнює 6"; print "!!!";
else:
print "а не дорівнює ні 5, ні 6"; endif;
?>
43
1.4 Оператор switch
Ще одна конструкція, що дозволяє перевіряти умову і виконувати залежно від цього різні дії, – це switch . На російську мову назву даного оператора можна перевести як "перемикач". І значення у нього саме таке. Залежно від того, яке значення має змінна, він перемикається між різними блоками дії. switch дуже схожий на оператор if...elseif...else або набір операторів if . Структуру switch можна записати таким чином:
switch (вираз або змінна){
case значення1: блок_дій1; break; case значення2: блок_дій2; break;
...
default: блок_дій_по_замовчанню;
}
На відміну від if, тут значення виразу не приводиться до логічного типу, а просто порівнюється із значеннями, перерахованими після ключових слів case (значення1, значення2 і т.д.). Якщо значення виразу співпало з якимсь варіантом, то виконується відповідний блок_дій – від двокрапки після значення, що співпало, до кінця switch або до першого оператора break, якщо такий знайдеться. Якщо значення виразу не співпало ні з одним з варіантів, то виконуються дії за умовчанням (блок_дій_по_замовчанню), що знаходяться після ключового слова default. Вираз в switch обчислюється тільки один раз, а в операторі elseif – кожного разу, тому, якщо вираз достатньо складний, то switch працює швидше.
Приклад 3.3 можна переписати з використанням switch таким чином:
<?
$names = array("Іван","Петро","Семен"); switch ($names[0]){
case "Іван": echo "Привіт, Ваня!"; break; case "Петро": echo "Привіт, Петя!"; break; case "Семен": echo "Привіт, Сеня!"; break;
default: echo "Привіт $names[0]. А як Вас звуть?";
}
?>
44