Некомпатибилни промени
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Некомпатибилни промени
Референца за `migration56.incompatible.php` со подобрена типографија и навигација.
Некомпатибилни промени
Although most existing PHP 5 code should work without changes, please take note of some backward incompatible changes:
Иако повеќето постоечки PHP 5 код треба да работи без промени, ве молиме имајте предвид некои некомпатибилни промени:
Клучовите на низата нема да бидат препишани при дефинирање на низа како својство на класа преку литерал на низа
<?php
class C {
const ONE = 1;
public $array = [
self::ONE => 'foo',
'bar',
'quux',
];
}
var_dump((new C)->array);
?>Претходно, низите декларирани како својства на класа кои мешаа експлицитни и имплицитни клучови може да имаат елементи од низата тивко препишани ако експлицитен клуч беше ист како секвенцијален имплицитен клуч. На пример:
array(2) {
[0]=>
string(3) "bar"
[1]=>
string(4) "quux"
}
Излез од горниот пример во PHP 5.6:
array(3) {
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(4) "quux"
}
json_decode() strictness
json_decode() Излез од горенаведениот пример во PHP 5.5: true, false and
null сега отфрла варијанти што не се со мали букви на JSON литералите json_last_error() во секое време, според спецификацијата на JSON, и поставува json_decode() соодветно. Претходно, влезовите во
што се состоеше исклучиво од една од овие вредности во големи или мешани букви беа прифатени. json_decode()Оваа промена ќе влијае само на случаи каде што неважечки JSON беше предаден на
: валиден JSON влез не е засегнат и ќе продолжи да се анализира нормално.
Stream wrappers сега проверуваат сертификати на партнерот и имиња на хостови по дифолт кога се користи SSL/TLS
Сите шифрирани клиентски потоци сега овозможуваат проверка на партнерот по дифолт. По дифолт, ова ќе го користи стандардниот CA пакет на OpenSSL за да го провери сертификатот на партнерот. Во повеќето случаи, нема да бидат потребни промени за комуникација со сервери со валидни SSL сертификати, бидејќи дистрибутерите генерално ги конфигурираат OpenSSL да користат познати добри CA пакети.
cafile or
capath
Стандардниот CA пакет може да се надмине на глобално ниво со поставување на поставката за конфигурација openssl.cafile или openssl.capath, или на барање со користење на
опции за контекст.
verify_peer
Иако генерално не се препорачува, можно е да се оневозможи проверката на сертификатот на партнерот за барање со поставување на falseопција за контекст на verify_peer_name
Иако генерално не се препорачува, можно е да се оневозможи проверката на сертификатот на партнерот за барање со поставување на false.
GMP , а да се оневозможи валидацијата на името на партнерот со поставување на
GMP ресурсите сега се објекти is_resource() ресурсите сега се објекти. Функционалното API имплементирано во GMP екстензијата не е променето, и кодот треба да работи непроменет освен ако експлицитно не проверува за ресурс користејќи
— Проверува дали дадениот хеш одговара на дадените опции функциите сега бараат валидни клучеви и ИВ-а
mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() and mcrypt_ofb() веќе нема да прифаќа клучеви или ИВ-а со погрешни големини, а режимите на блок шифрирање што бараат ИВ-а сега ќе откажат ако не е обезбеден ИВ.