INCLUDE_CHECK - это не особенность самого PHP, а лишь некоторый код, который кто-то написал на PHP.Первое нажатие в google показывает нам файл конфигурации, который пользователь пытается защитить, проверив, определена ли переменная.
Подход, использованный во фрагменте, найденном мной в Google, выглядит следующим образом.
- файл, на который можно ссылаться напрямую (например, http://example.com/foo.php) определит INCLUDE_CHECK и затем включит файл, который проверяет INCLUDE_CHECK, например, config.php; потому что foo.php уже определил его,это будет работать правильно
- , если пользователь обращается к config.php напрямую (например, http://example.com/config.php), тогда INCLUDE_CHECK не будет определен, поэтому произойдет ошибка, не позволяющая пользователю запустить скрипт.
Следующие примеры должны прояснить ситуацию
foo.php
<?php
defined('INCLUDE_CHECK', true);
require_once 'config.php';
?>
config.php
<?php
if (!defined('INCLUDE_CHECK')) { die ('invalid access'); }
echo 'Hello World!';
?>
Если пользователь обращается к конфигурации.php напрямую, тогда INCLUDE_CHECK не определен, поэтому сценарий умрет с сообщением о недопустимом доступе. Если пользователь получит доступ к foo.php, он определит INCLUDE_CHECK , тогда include config.php, whiЗатем ch откликнется Hello World.
Это довольно дерьмовый способ защиты файла конфигурации, кстати;см. мой пост здесь для более простого и надежного подхода.