PHP/Змінні, вирази і оператори
Змінні
[ред.]Змінна — об'єкт, що має ім'я та значення. Знаючи ім'я, ми можемо користуватись значеннями, що має змінна. Змінні в PHP починаються зі знака долара. Імена чутливі до регістру і мають починатися з букви чи нижнього підкреслення. Можуть писатися як латиницею, так і кирилицею. Значення змінних може бути отримане в такий спосіб:
- самостійне визначення (оголошення);
- як результат виконання функцій/операцій;
- отримано через запит браузера методом Get або Post.
// Самостійно оголошуємо змінні
$кількість_користувачів = 100;
$user = 'Петрик П’яточкін';
// Значення змінної є результатом операції
$new_user= $кількість_користувачів+1;
echo "Вітаємо вас, $user! Ви - $new_user користувач!"; // Вітаємо вас, Петрик П’яточкін! Ви - 101 користувач!
Екранування змінних
[ред.]Для екранування змінних в PHP використовуються фігурні дужки. Приклад:
$користувач = 'Петрик';
echo "Бувай, {$користувач}у!"; // Виведе: Бувай, Петрику!
echo "Бувай, ${користувач}у!"; // Аналогічний результат.
Доступ до символу в рядку
[ред.]Виведення окремих символiв рядка теж робиться за допомогою фігурних дужок.
$name = 'Hypertext Preprocessor';
echo $name{0}; // Виведе: H, адже відлік починається з нуля.
echo $name{10}; // Виведе: P
В цих дужках виконуються операції і функції. Приклади:
echo $name_last = $name{strlen($name)-1}; // Виведення останнього символу
$name{strlen($name)-1} = "R"; // Заміна останнього символу
echo $name; // Hypertext PreprocessoR
Але зверніть увагу, що довжину рядка цією функцією PHP рахує в байтах, а не в символах (як наприклад, в JavaScript). А одна літера кирилиці в такому випадку є займає 2 байта.
Константи
[ред.]Як випливає з назви, константи - це змінні, значення яких задається один раз і не може зміниться в ході виконання скрипта. Задаються функцією define, а їх імена завжди пишуться у верхньому регістрі.
Приклад:
define ("КОНСТАНТА", "ЗНАЧЕННЯ")
Оператори
[ред.]Оператори виводу
[ред.]echo є мовною конструкцією, а не функцією, тому вираз, що передається, не треба брати в дужки. Кількість аргументів необмежена. Зауважте, що echo не повертає жодного значення при виконанні, тобто її неможливо присвоїти змінній.
echo $користувач;
echo ($користувач,", привіт!"); // не можна передавати вирази, як в функцію. це викличе помилку.
Аналогом є print — теж мовна конструкція, але її відмінність в тому, що вона завжди повертає значення 1, завдяки чому цей оператор можна присвоювати змінним (але чи треба?).
$a = 50;
$n = print $a; //змінна $n має значення 501 (де 50 - це значення $a, 1 - результат оператору print)
echo $n+20 ; // Результат: 5021 (додавання відбулось саме до результату від print)
//А це викличе помилку типу Parse error
$b = echo $n+20;
Короткий запис echo, якщо включений short_open_tag:
Вітаємо вас, <?=$користувач?>!
Зауважте, що кожна операція з використанням оператора echo є приведенням значень до рядка. Тому виведення булевого true буде 1, а false не виведе нічого.
$n = true;
echo $n + 10; // 11
|
$n = false;
echo $n - 5; // -5
|
Оператори присвоєння
[ред.]Рядкові оператори
[ред.]Конкатенація, тобто об'єднання рядків в PHP відбувається за допомогою крапки ('.'). Також, може приєднувати правий аргумент до лівого з оператором присвоєння.
$користувач = "Петрик";
$вітання = ", привіт!";
echo $користувач.$вітання; // Петрик, привіт!
//Присвоєння з конкатенацією
$користувач .= ", привіт!"; // Змінна містить значення "Петрик, привіт!"
Арифметичні оператори
[ред.]Приведення рядка до числа
[ред.]Виконання арифметичних дій зі змінними, типом даних в яких є рядок, проводиться за качиною типізацією. Так як PHP читає код зліва направо, він ідентифікує числом перші цифри, що знайде в рядку, інше відкине та викличе помилку типу Notice.
$фрукт= "1 яблуко";
echo $фрукт+5;
|
Notice: A non well formed numeric value encountered in ... on line ... |
Бітова логіка
[ред.]- ~ - побітове "не"
- & - побітове "і"
- | - побітове "або"