An empty <?php?> Codeblock in PHP 7.2.0 will put out an "Unquoted strings" warning. To prevent that, add at least one empty space into the codeblock.
Example:
<?php
<?php/*
echo "This was some useful code.\n";
*/?>
?>
Gives: PHP Warning: Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP)
Fix via:
<?php
<?php /*
echo "This was some useful code.\";
*/?>
?>
Don't know if that is an intentional behaviour or a side effect.Опишани одлики во PHP 7.2.x
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Опишани одлики во PHP 7.2.x
Референца за `migration72.deprecated.php` со подобрена типографија и навигација.
Опишани одлики во PHP 7.2.x
Ненведени низи
Ненведени низи што се непостоечки глобални константи се земаат како низи од самите себе. Ова однесување порано емитуваше
E_NOTICE, но сега ќе емитува
E_WARNING. Во следната главна верзија на PHP,
Грешка ќе биде фрлен исклучок.
<?php
var_dump(NONEXISTENT);
/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/png2wbmp() and jpeg2wbmp()
На png2wbmp() and jpeg2wbmp() функциите од GD екстензијата сега се отфрлени и ќе бидат отстранети во следната главна верзија на PHP.
INTL_IDNA_VARIANT_2003 variant
Intl екстензијата го отфрли
INTL_IDNA_VARIANT_2003 варијанта, која моментално се користи како стандардна за idn_to_ascii() and
idn_to_utf8(). PHP 7.4 ќе ги види овие стандарди променети на
INTL_IDNA_VARIANT_UTS46, а следната главна верзија на PHP ќе го отстрани INTL_IDNA_VARIANT_2003 altogether.
__autoload() method
На __autoload() методот е отфрлен бидејќи е инфериорен во однос на spl_autoload_register() (поради тоа што не може да ги поврзе автолоадерите), и нема интероперабилност помеѓу двата стила на автолоадер.
track_errors ini поставка и $php_errormsg variable
Кога track_errors ini поставката е овозможена,
$php_errormsg променлива се создава во локалната област кога ќе се случи нефатална грешка. Со оглед на тоа што претпочитаниот начин за добивање такви информации за грешки е со користење error_get_last(), оваа функција е отфрлена.
create_function() function
Со оглед на безбедносните проблеми на оваа функција (бидејќи е тенка обвивка околу eval()), оваа застарена функција сега е отфрлена. Претпочитана алтернатива е да се користи анонимни функции.
mbstring.func_overload ini поставка
Со оглед на проблемите со интероперабилноста на функциите базирани на низи што се користат во средини со оваа поставка овозможена, таа сега е отфрлена.
(unset) cast
Префрлањето на која било експресија во овој тип секогаш ќе резултира со null, и затоа оваа сувишна промена на типот сега е застарена.
parse_str() без втор аргумент
Без вториот аргумент до parse_str(), параметрите на низата за барање би ги пополниле локалната табела со симболи. Со оглед на безбедносните импликации на ова, користењето parse_str() без втор аргумент сега е застарено. Функцијата секогаш треба да се користи со два аргументи, бидејќи вториот аргумент предизвикува низата за барање да се анализира во низа.
gmp_random() function
Оваа функција генерира случаен број врз основа на опсег што се пресметува од неекспонирана, специфична за платформата големина на екстремитет. Поради ова, функцијата сега е застарена. Претпочитаниот начин за генерирање случаен број со помош на GMP екстензијата е со gmp_random_bits() and gmp_random_range().
each() function
Оваа функција е многу побавно при итерација од нормална
foreach, и предизвикува проблеми со имплементацијата за некои промени на јазикот. Затоа е застарена.
assert() со аргумент од тип стринг
Пронајдете и отворете ја конфигурациската датотека на Apache. Стандардно, локацијата е како што следува: assert() со аргумент од тип стринг бараше стринг да биде eval()'. Со оглед на потенцијалот за извршување на далечински код, користењето assert() со аргумент од тип стринг сега е застарено во корист на користење булови изрази.
$errcontext аргумент на ракувачи со грешки
На $errcontext аргументот ги содржи сите локални променливи на местото на грешката. Со оглед на неговата ретка употреба и проблемите што ги предизвикува со внатрешни оптимизации, тој сега е застарен. Наместо тоа, треба да се користи дебагер за добивање информации за локалните променливи на местото на грешката.
read_exif_data() function
На read_exif_data() новата верзија е застарена. На exif_read_data() треба да се користи наместо тоа.
Белешки од корисници 2 забелешки
Instead of __autoload(), you can use spl_autoload_register() very easily, as per the documentation:
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});
And this lets you have multiple autoloaders instead of one global one.