PHP/Змінні, вирази і оператори

< PHP
(Перенаправлено з 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 ...
6

Бітова логіка

ред.
~ - побітове "не"
& - побітове "і"
| - побітове "або"


 
без рамки

Змінні, вирази і оператори