ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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