Урок 6. Волшебные и предопределенные константы

  • 29 декабря 2018
  • 1999
0%

Помогло?

В данном уроке мы с вами узнаем, что такое волшебные константы, и почему они так называются, в чем их магия?

Она кроется в их текущем состоянии. Иногда их называют предопределенными, потому что страница только загрузилась, а они уже определились и заданы. Для примера $_SERVER - это магия, при которой вы получаете серверную информацию. Например: $_SERVER['SERVER_NAME']; В данном случае, у вас будет доменное имя, например: https://blog-kopilka.ru

Стоит отметить, что это очень большая и важная переменная. Вы можете посмотреть все ее содержимое, выполнив команду:

print_r($_SERVER); 

print_r - это аналог команды var_dump. Отличие лишь в том, что она выводит данные без типов

На тестовом сервисе http://sandbox.onlinephpfunctions.com/ вы не сможете получить много данных, так как автор специально скрыл часть информации в целях безопасности. Также есть такие константы: PHP_VERSION (версия PHP), и __LINE__ (текущая строка скрипта), __DIR__ (директория в которой лежит скрипт). Полный список всех констант вы найдете также на официальном сайте : http://php.net/manual/ru/language.constants.predefined.php и http://php.net/manual/ru/reserved.variables.server.php

$_GET и $_POST

Нас будут интересовать эти две константы, носящих также название - Суперглобальные. 

$_GET - это массив, и он задается в том случае, когда передаются параметры в url адресной строки. Это можно сделать следующим образом: http://local/index.php?param=5

Они задаются после знака ?, далее идет имя параметра, знак равенства и значение. Чтобы у вас отработала данная константа, вам необходимо настроить виртуальный сервер. Об этом мы разговаривали в начале первого урока (см раздел Веб Сервер).

Допустим, вы хотите получить значение нашего параметра. Для этого нужно сделать следующую запись : echo $_GET["param"]; На экран будет выведено:

5

Но как быть, если параметр никто не передал? В данном случае выдается вот такая ошибка???

Notice: Undefined index: param

Все очень просто. Есть функция, которая проверит переменную на существование. Если данное действие подтвердится, то будет выполняться определенный код. Смотрите пример:

if(isset($_GET["param"])){
	//ваш код
}

И теперь не появится предупреждение об ошибке. А, давайте, возьмем нашу функцию, которую мы писали раньше, и вставим ее в наш код:

/**
 * Функция, определяющая, делится ли число на 2 без остатка
 * @param int Число, которое нужно проверить
 * @return bool Результат проверки
*/

function devided($number) {
	if($number % 2 == 0){
		return true;
	}
	return false;
}

if(isset($_GET["param"])) {
	$number = $_GET["param"];
	if(devided($number)) {
		echo "Число ".number." делится на 2";
	}
}

$_POST

Эта константа заполняется в том случае, если вы отправляете данные методом POST. Или, говоря максимально простым языком, - из формы. Например, на странице есть вот такая html форма:

<form method = 'POST' action = '' >
	<input type="text" name="param">
	<input type="submit">
</form>

Обратите внимание на input с name="param". Если мы заполним это поле и нажмем на кнопку submit, то данные с отправятся на в массив $_POST, и мы сможем также как и с $_GET["param"], работать с переменной $_POST["param"]. Для вас также доступна опция отправки формы методом GET. В таком случае, все отправленные параметры будут вставлены в адресную строку браузера. Простой пример:

<?php
/**
 * Функция, определяющая, делится ли число на 2 без остатка
 * @param int Число, которое нужно проверить
 * @return bool Результат проверки
*/

function devided($number) {
	if($number % 2 == 0){
		return true;
	}
	return false;
}

if (isset($_POST["param"])) {
	$number = $_POST["param"];
	if(devided($number)) {
		echo "<h1>Число ".number." делится на 2</h1>";
	}
}

?>

<form method = 'POST' action = '' >
	<input type="text" name="param">
	<input type="submit">
</form>

Хочу вас предупредить! Это учебный код, чтобы на пальцах объяснить, как работают константы $_GET и $_POST. На самом же деле этот код ужасен! И его строго-настрого нельзя использовать на продакшене! Но опыт придет… не переживайте! Просто не останавливайтесь на достигнутом.

Курс

Облако тегов

Следующая статья

Урок 7. Заключение. Игра

Всем привет! Наступил финальный урок курса. Если вы не видели предыдущие уроки, я рекомендую их посмотреть (урок 1). Сегодня мы будем закреплять полученные знания практическим занятием. Для этого сделаем игру на PHP, правила которой очень просты. Это казино, а, точнее, однорукий бандит. Вы вращаете барабан, и выпадает комбинация из трех случайных наборов.  

Сообщения: (0)

?
Публикуя сообщение, вы соглашаетесь с пользовательским соглашением

Читайте также