MySQL історія запитів. Структурована мова запитів SQL у PHPMyAdmin. Збереження параметрів пошуку
Зустрічаються випадки, коли змінні досить незручно використовуватиме постійного зберігання якихось певних значень, які змінюються протягом роботи програми. Такими значеннями можуть бути математичні константи, шляхи до файлів, різноманітні паролі тощо. Саме для цих цілей у PHP передбачена така конструкція, як.
називається іменована величина, яка не змінюється у процесі виконання програми (скрипта).
У РНР константи визначаються функцією define(). Ця функція має такий формат:
define ($name, $value, $case_sen), де:
$name- Ім'я константи;
$value- Значення константи;
$case_sen- необов'язковий параметр логічного типу,
вказує, чи слід враховувати регістр літер (true) чи ні (false).
Приклад визначення та використання констант у PHP:
php
echo pi;
// Виводить 3.14
?>
Якщо параметр $case_senдорівнює true, то інтерпретатор враховуватиме регістр символів під час роботи з константою. Зверніть увагу, що константи використовуються без попереднього знаку $ .
Відмінності між константами та змінними:
Констант не має приставки у вигляді знака долара ( $ );
Константи можна визначити лише за допомогою функції define(), а чи не привласненням значення;
Константи можуть бути визначені та доступні в будь-якому місці без урахування області видимості;
Константи не можуть бути визначені або анульовані після початкового оголошення;
Константи можуть мати лише скалярні значення.
Перевірка існування констант
Для перевірки константи можна використовувати функцію defined() . Ця функціяповертає true, якщо константу оголошено. Наведемо приклад:
php
// Оголошуємо константу pi
define ("pi", 3.14, true);
if (defined ("pi")== true ) echo "Константа pi оголошена!";
// Скрипт виведе "Константа pi оголошена!"
?>
Зумовлені константи PHP
У PHP існують такі визначені константи:
PHP надає великий список зумовлених констант для кожного скрипта, що виконується. Багато з цих констант визначаються різними модулями і будуть присутні лише в тому випадку, якщо ці модулі доступні в результаті динамічного завантаження або статичного складання.
Є п'ять зумовлених констант, які змінюють значення залежно від контексту, в якому вони використовуються. Наприклад, константа __LINE__залежить від рядка в скрипті, де ця константа вказана. Спеціальні константи нечутливі до регістру та їх список наведений нижче:
Ім'я | Опис |
---|---|
__LINE__ | Поточний рядоку файлі. |
__FILE__ | Повний шлях та ім'я поточного файлу. |
__DIR__ | Повідомлення про файл. Якщо вона включена в включені, то в directory of the included file is returned. Це є equivalent to dirname(__FILE__). Це directory name does не має trailing slash unless it is root directory. |
__FUNCTION__ | Ім'я функції. (Додано в PHP 4.3.0.) |
__CLASS__ | Назва класу. (Додано в PHP 4.3.0.) |
__TRAIT__ | Trait name. Trait name включатиме namespace it був declarated in (e.g. Foo \ Bar). |
__METHOD__ | Ім'я методу класу. (Додано в PHP 5.0.0) |
__NAMESPACE__ | Назва поточного namespace. |
Додатково
» Константи у PHP?
Вживаючи у повсякденному житті слово «константа», ми маємо на увазі постійне значення. Це може бути число Пі (3,14) чи температура кипіння води (100 °С). У РНР також є можливість використовувати константи. Сенс їх застосування полягає в тому, що, позначивши певне значення, ми можемо використовувати його протягом усього коду програми.
(!) Константа – це незмінне значення.
Наприклад, ваш друг Василь Пупкін створив Web-сайт і хоче, щоб усі знали ім'я адміністратора. При цьому він знаходить найпростіше і, здавалося б, правильне рішення (листинг 4.19).
Лістинг 4.19. Виведення прізвища та імені адміністратора Web-сайту.
‹?php
echo "Адміністратор сайту: Пупкін Василь"; // Висновок повідомлення
?›
Відповідно, треба змінити ім'я адміністратора. Швидше за все, ви шукатимете по всіх сторінках сайту текст, що містить рядок Пупкін Василь. Після знаходження треба розібратися, міняти її на ваше ім'я чи ні. Не важко помітити, що рішення, здавалося б, простий завдання займає багато часу і гарантує коректну роботу програми. Всі ці проблеми можна було б уникнути, якби Василь застосував константу для позначення свого імені. Для цього треба вибрати ім'я константи (зазвичай його називають ідентифікатором), наприклад, ADMIN_NAME, після чого визначити її значення (у нашому випадку Пупкін Василь).
Тепер розв'язання задачі виглядатиме так, як показано у лістингу 4.20.
Лістинг 4.20. Приклад використання констант.
‹html›
‹head›
‹title›Приклад використання констант‹/title›
‹/head›
‹body›
‹?php
define("ADMIN_NAME", "Пупкін Василь"); // Визначення константи
echo "Адміністратор сайту:"; // Висновок повідомлення
echo ADMIN_NAME; // Висновок значення константи
?›
‹/body›
‹/html›
У цьому випадку ідентифікатор ADMIN_NAME буде замінено значенням Пупкін Василь. Щоб змінити ім'я адміністратора Web-сайта, потрібно лише коригування рядки з визначенням константи. Розглянемо цю тему докладніше.
PHP має набір спеціальних зумовлених констант і магічних методів для ваших проектів. На відміну від звичайних констант, які можна встановлювати за допомогою define() , значення зумовлених констант залежить від того, де вони використовуються, і є інформацією лише для читання про код та PHP систему. Магічні методи можна використовувати у класах для отримання доступу до спеціального функціоналу PHP.
У цьому уроці ми розглянемо кілька корисних зумовлених констант та магічних методів з прикладами використання у коді.
Зумовлені константи
Обумовлені константи використовуються для отримання інформації про ваш код. Ім'я такої константи пишеться великими літерамиміж здвоєними підкресленнями, наприклад, __LINE__ та __FILE__ . Ось кілька корисних констант, доступних в PHP:
- __LINE__ повертає номер рядка в вихідному файлі, де використовується константа:
- __FILE__ представляє ім'я файлу, включаючи повний шлях:
- __DIR__ представляє тільки шлях до файлу:
- __CLASS__ представляє ім'я поточного класу:
- __FUNCTION__ представляє ім'я поточної функції:
- __METHOD__ представляє ім'я поточного методу:
- __NAMESPACE__ представляє ім'я поточного простору імен:
Магічні методи
Магічні методи являють собою гачки для спеціального функціоналу PHP. Їхні імена пишуться маленькими літерами з двома попередніми підкресленнями, наприклад, __construct() та __destruct() .
Construct() - магічний метод, який PHP викликає створення екземпляра вашого класу. Він приймає будь-яку кількість аргументів.
Destruct()- магічний метод, який викликається, коли об'єкт знищується колектором PHP. Цей метод не приймає аргументів і зазвичай використовується для виконання спеціальних операцій, наприклад, закриття з'єднання з базою даних.
Наступні кілька магічних методів призначені для маніпуляцій з властивостями, і представляють спосіб PHP обробити звернення до властивостей та методів, які не були визначені (або недоступні).
PHP викликає метод __get() в контексті, якщо властивість не визначена (або недоступна). Метод приймає один аргумент – ім'я властивості. Він повинен повернути значення, яке оброблятиметься як значення властивості.
Метод __set() викликається для невизначеної властивості в контексті, що задає. Даний метод приймає два аргументи, ім'я властивості та значення.
myAarray[$prop] = $value; ) public function __get($prop) ( return $this->myArray[$prop]; ) public function __isset($prop) ( return isset($this->myArray[$prop]); ) public function __unset($prop) ) ( unset($this->myArray[$prop]); ) public function __toString() ( return __CLASS__ . ":" . $this->name; ) ) $obj = new MySample(); if (!isset($obj->name)) ( $obj->name = "Alireza"; ) echo $obj->name; // Alireza echo $ obj; // MySample:Alireza
У наведеному вище коді властивість name не визначено в класі. У коді робиться спроба призначити цій властивості значення "Alireza" і PHP викликає магічний метод __set() . Він отримує “name” як аргумент $prop і “Alireza” як $value , і зберігає значення приватному масиві $myArray . Метод __get() працює у подібній манері. При виведенні $obj->name викликається метод __get() і передається значення “name” як аргумент $prop .
Є й інші магічні методи, які допомагають маніпулювати недоступними властивостями, як у прикладі: __isset() , __unset() і __toString() . Обидва методи __isset() і __unset() запускаються функціями з такими ж іменами, але без підкреслень у PHP.
Isset() перевіряє, чи встановлено властивість чи ні. Цей метод приймає один аргумент - властивість, яку треба перевірити. Метод __unset() приймає один аргумент, ім'я якості, яку потрібно скинути.
У багатьох випадках зручне уявлення об'єкта як рядка, наприклад, для виведення користувачеві або іншого процесу. Зазвичай PHP представляє об'єкт як ідентифікатор у пам'яті, що є поганим для таких функцій. Метод __toString() допомагає уявити об'єкт як рядок. Метод запускається у багатьох ситуаціях, де об'єкт використовується як рядок, наприклад echo "Hello $obj" . Також його можна викликати безпосередньо як будь-який інший публічний метод.
Константи- Це значення, які не змінюються з часом. Ще зі школи Ви, напевно, знаєте багато константів, наприклад, число п, число e, прискорення вільного падіння та інші. І, зрозуміло, при програмуванні теж часто виникає необхідність введення констант. І про те, як створювати та використовувати константи в PHP, ми й поговоримо у цій статті.
Давайте з Вами створимо константучисла п:
define(PI, 3.1415926);
echo PI;
?>
Оператор defineстворює константу PIі надає їй значення 3.1415926 . Далі ми виводимо цю константу через оператор echo. Все дуже просто, однак, є одна рекомендація, яку я раджу Вам завжди дотримуватись. Обов'язково пишіть константивеликими літерами. Не те щоб це було обов'язково, але вкрай бажано. І так прийнято не тільки в PHP, але й інших мовах теж.
Зрозуміло, згодом змінити константу PI буде не можна (на те вона і константа).
Тепер розберемо одну функцію, яка перевіряє: " Чи визначено задану константу". Давайте напишемо такий скрипт:
if (!defined("PI")) define(PI, 3.1415926);
echo PI;
?>
Тут перевіряється існування константи PI. І якщо вона не існує (тобто функція define()повернула false), то тоді ініціалізуємо цю константу. Потім просто виводимо її.
Як бачите, створювати та використовувати свої константи у PHP- це дуже просто.
І, насамкінець, хочеться розповісти про вже вбудованих константах PHP . Давайте з Вами напишемо простий скрипт:
phpinfo();
?>
Ближче до кінця є розділ " PHP Variable". Власне, це не зовсім константи, однак, вони є константамипід час виконання даного скрипта. Зрозуміло, під час виконання іншого скрипту вони вже матимуть інші значення (не все, зрозуміло). Давайте з Вами виведемо пару констант, щоб Ви зрозуміли, як з ними працювати, адже вони використовуються дуже часто:
echo $_SERVER["REMOTE_ADDR"];
echo "
";
echo $_SERVER["QUERY_STRING"];
?>
У цьому скрипті ми виводимо IP-адреса користувача, що запустив скрипт, а на наступному рядку виводимо рядок запиту (наприклад, " index.php?id=7Забігаючи трохи вперед, кажу, що тут ми працюємо з глобальним масивом $_SERVER. З масивами ми ще познайомимося, але думаю, що ті, хто працював з масивами в інших мовах програмування, без проблем дізнаються синтаксис. Що ж до інших констант, то з ними робота відбувається аналогічно.