Рекламный блок
Использование define. Один и тот же код PHP 5, 7, 8 даёт разный результат
Начиная с PHP 7.3.0, определение нечувствительных к регистру констант объявлено устаревшим и удалено в версии 8.0.0, в результате ранее работавший код будет приводить к фатальным ошибкам.
Пример 1
<?php
error_reporting(E_ALL);
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.");
echo TEXT, '<br>';
echo text, '<br>';
?>
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.");
echo TEXT, '<br>';
echo text, '<br>';
Результаты:
Версия PHP 5.6.40
Здравствуй, мир.
Notice: Use of undefined constant text - assumed 'text' in G:\server\php-test\p1.php on line 6
text
Notice: Use of undefined constant text - assumed 'text' in G:\server\php-test\p1.php on line 6
text
Версия PHP 7.1.33
Здравствуй, мир.
Notice: Use of undefined constant text - assumed 'text' in G:\server\php-test\p1.php on line 6
text
Notice: Use of undefined constant text - assumed 'text' in G:\server\php-test\p1.php on line 6
text
Версия PHP 7.2.34
Здравствуй, мир.
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 6
text
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 6
text
Версия PHP 7.4.27
Здравствуй, мир.
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 6
text
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 6
text
Версия PHP 8.0.14
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Версия PHP 8.1.1
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Пример 2
<?php
// error_reporting(E_ALL);
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.");
echo TEXT, '<br>';
echo text, '<br>';
?>
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.");
echo TEXT, '<br>';
echo text, '<br>';
Результаты:
Версия PHP 7.1.33
Здравствуй, мир.
text
text
Версия PHP 7.2.34
Здравствуй, мир.
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 7
text
Warning: Use of undefined constant text - assumed 'text' (this will throw an Error in a future version of PHP) in G:\server\php-test\p1.php on line 7
text
Версия PHP 8.0.14
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Пример 3
<?php
error_reporting(E_ALL);
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.", true);
echo TEXT, '<br>';
echo text, '<br>';
?>
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.", true);
echo TEXT, '<br>';
echo text, '<br>';
Результаты:
Версия PHP 5.6.40
Здравствуй, мир.
Здравствуй, мир.
Здравствуй, мир.
Версия PHP 7.1.33
Здравствуй, мир.
Здравствуй, мир.
Здравствуй, мир.
Версия PHP 7.2.34
Здравствуй, мир.
Здравствуй, мир.
Здравствуй, мир.
Версия PHP 7.4.27
Deprecated: define(): Declaration of case-insensitive constants is deprecated in G:\server\php-test\p1.php on line 4
Здравствуй, мир.
Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "TEXT" in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Здравствуй, мир.
Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "TEXT" in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Версия PHP 8.0.14
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in G:\server\php-test\p1.php on line 4
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Версия PHP 8.1.1
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in G:\server\php-test\p1.php on line 4
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Пример 4
<?php
// error_reporting(E_ALL);
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.", true);
echo TEXT, '<br>';
echo text, '<br>';
?>
echo '<p>Версия PHP ', phpversion(), '</p>';
define("TEXT", "Здравствуй, мир.", true);
echo TEXT, '<br>';
echo text, '<br>';
Результаты:
Версия PHP 7.2.34
Здравствуй, мир.
Здравствуй, мир.
Здравствуй, мир.
Версия PHP 7.4.27
Deprecated: define(): Declaration of case-insensitive constants is deprecated in G:\server\php-test\p1.php on line 4
Здравствуй, мир.
Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "TEXT" in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Здравствуй, мир.
Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "TEXT" in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Версия PHP 8.0.14
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in G:\server\php-test\p1.php on line 4
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6
Здравствуй, мир.
Fatal error: Uncaught Error: Undefined constant "text" in G:\server\php-test\p1.php:6 Stack trace: #0 {main} thrown in G:\server\php-test\p1.php on line 6