PHP.mk документација

Некомпатибилни промени

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

migration72.incompatible.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека migration72.incompatible.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Некомпатибилни промени

Референца за `migration72.incompatible.php` со подобрена типографија и навигација.

migration72.incompatible.php

Некомпатибилни промени

Спречи number_format() да враќа негативно нула

Претходно, беше можно number_format() функцијата да врати -0. Иако ова е сосема валидно според IEEE 754 спецификацијата за пловечка точка, оваа чудност не беше посакувана за прикажување форматирани броеви во форма што може да ја прочитаат луѓето.

<?php

var_dump
(number_format(-0.01)); // now outputs string(1) "0" instead of string(2) "-0"

Конвертирај нумерички клучеви во објекти и кастинг на низи

Нумеричките клучеви сега се подобро обработени при кастинг на низи во објекти и објекти во низи (или од експлицитно кастинг или од settype()).

Ова значи дека цел (или низа со цел) клучевите од низи што се кастираат во објекти сега се достапни:

<?php

// array to object
$arr = [0 => 1];
$obj = (object) $arr;
var_dump(
$obj,
$obj->{'0'}, // now accessible
$obj->{0} // now accessible
);

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

object(stdClass)#1 (1) {
  ["0"]=>    // string key now, rather than integer key
  int(1)
}
int(1)
int(1)

И цел (или низа со цел) клучевите од објекти што се кастираат во низи сега се достапни:

<?php

// object to array
$obj = new class {
public function
__construct()
{
$this->{0} = 1;
}
};
$arr = (array) $obj;
var_dump(
$arr,
$arr[0], // now accessible
$arr['0'] // now accessible
);

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

array(1) {
  [0]=>    // integer key now, rather than string key
  int(1)
}
int(1)
int(1)

Забрани поминување null to get_class()

Претходно, поминување null на get_class() функцијата би го прикажала името на околната класа. Ова однесување сега е отстрането, каде што E_WARNING ќе биде прикажано наместо тоа. За да се постигне истото однесување како порано, аргументот треба едноставно да се изостави.

Предупреди при броење на небројливи типови

Еден E_WARNING сега ќе биде издадено при обид за count() небројливи типови (ова го вклучува sizeof() алијас функција).

<?php

var_dump
(
count(null), // NULL is not countable
count(1), // integers are not countable
count('abc'), // strings are not countable
count(new stdClass), // objects not implementing the Countable interface are not countable
count([1,2]) // arrays are countable
);

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

Премести ext/hash од ресурси во објекти

Како дел од долгорочната миграција од ресурси, Хеш екстензијата е ажурирана да користи објекти наместо ресурси. Промената треба да биде беспрекорна за PHP програмерите, освен каде што is_resource() извршени се проверки (кои ќе треба да се ажурираат за is_object() наместо).

Подобрете ги стандардните вредности за SSL/TLS

Направени се следните промени во стандардните вредности:

  • tls:// сега стандардно користи TLSv1.0 или TLSv1.1 или TLSv1.2
  • ssl:// новата функција tls://
  • STREAM_CRYPTO_METHOD_TLS_* константите стандардно користат TLSv1.0 или TLSv1.1 + TLSv1.2, наместо само TLSv1.0

gettype() враќање вредност на затворени ресурси

Претходно, користењето gettype() на затворен ресурс враќаше стринг од "unknown type". Сега, стринг од "resource (closed)" ќе биде вратено.

is_object() and __PHP_Incomplete_Class

Претходно, користењето is_object() Пред PHP 7.2.0, користењето на __PHP_Incomplete_Class на false. Сега, true ќе биде вратено.

Подигнете го нивото на грешка за недефинирани константи

Неограничените референци до недефинирани константи сега ќе генерираат E_WARNING (наместо E_NOTICE). Во следната голема верзија на PHP, тие ќе генерираат Грешка exceptions.

Поддршка за Windows

Официјално поддржаните, минимални верзии на Windows сега се Windows 7/Server 2008 R2.

Проверки на стандардните вредности на својствата на особините

Проверките за компатибилност на стандардните вредности на својствата на особините повеќе нема да вршат кастинг.

object за имиња на класи

На object Името претходно беше меко резервирано во PHP 7.0. Сега е тврдо резервирано, што го забранува неговото користење како име на класа, особина или интерфејс.

Поддршка за NetWare

Поддршката за NetWare сега е отстранета.

array_unique() with SORT_STRING

Додека array_unique() with SORT_STRING претходно го копираше низот и ги отстрануваше не-уникатните елементи (без пакување на низот потоа), сега се гради нов низ со додавање на уникатните елементи. Ова може да резултира со различни нумерички индекси.

bcmod() промени со броеви со децимална точка

На bcmod() функцијата повеќе не ги скратува дробните броеви на цели броеви. Како таква, нејзиното однесување сега следи fmod(), наместо % оператор. На пример bcmod('4', '3.5') сега враќа 0.5 наместо 1.

Функции за хеширање и некриптографски хешови

На hash_hmac(), hash_hmac_file(), hash_pbkdf2()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во hash_init() (со HASH_HMAC) функциите повеќе не прифаќаат некриптографски хешови.

json_decode() опции на функцијата

На json_decode() опција на функцијата, JSON_OBJECT_AS_ARRAY, сега се користи ако вториот параметар (assoc) е nullсега ќе вратат JSON_OBJECT_AS_ARRAY секогаш се игнорираше.

rand() and mt_rand() output

Секвенците генерирани од rand() and mt_rand() за одредено семе може да се разликуваат од PHP 7.1 на машини со 64 бита (поради поправање на грешка во модуларниот пристрасност во имплементацијата).

Отстранување на sql.safe_mode ini поставка

На sql.safe_mode ini поставката сега е отстранета.

, секвенците U+2028 и U+2029 сега се избегнуваат. date_parse() and date_parse_from_format()

На zone елемент од низата вратен од date_parse() and date_parse_from_format() претставува секунди наместо минути сега, и неговиот знак е инвертиран. На пример -120 сега е 7200.

Дојдовни колачиња

Од PHP 7.2.34, names на дојдовните колачиња веќе не се url-декодираат од безбедносни причини.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.