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

Нови одлики

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

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

Референца за `migration81.new-features.php` со подобрена типографија и навигација.

migration81.new-features.php

Нови одлики

PHP јадро

Префикс за октални литерали на цели броеви

Окталните броеви сега можат да користат експлицитен 0o/0O префикс во литерали на цели броеви, слично на бинарни и хексадецимални литерали на цели броеви.

<?php
014
; // Non-prefix octal literal
0o14; // Prefixed octal literal
?>

Расклопување на низи со клучни зборови од тип стринг

Додадена е поддршка за расклопување на низи со клучни зборови од тип стринг.

<?php
$arr1
= [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

Именуван аргумент по расклопување на аргумент

It is now possible to specify named arguments after an argument unpack. e.g. foo(...$args, named: $arg).

Клуч за целосна патека за поставување датотеки

Поставувањата на датотеки сега обезбедуваат дополнителен full_path клуч, кој ја содржи целосната патека (наместо само основниот дел) на поставената датотека. Ова е наменето за употреба во комбинација со "upload webkitdirectory".

Енумерации

Поддршка за Енумерации е додадена.

Влакна

Поддршка за Влакна е додадена.

Синтакса за повикливи објекти од прва класа

Затворањата за повикливи објекти сега можат да се креираат со користење на синтаксис myFunc(...), што е идентично со Closure::fromCallable('myFunc').

Забелешка: На ... Пример #1 Едноставна синтакса за повикливи од прва класа

Тип никогаш

Додаден е нов тип само за враќање never е додаден. Ова укажува дека функцијата или exit(), фрла исклучок, или не завршува.

new во Иницијализатори

Сега е можно да се користи new ClassName() изрази како стандардна вредност на параметар, статичка променлива, иницијализатори на глобални константи и како аргументи на атрибути. Објектите исто така можат да се проследат до define() now.

Својства само за читање

Поддршка за readonly е додадена.

Константи на финална класа

Додадена е поддршка за the final модификатор за константи на класа. Исто така, константите на интерфејсот стануваат презапишливи по дифолт.

CURL

Додаден е CURLOPT_DOH_URL option.

Додадени опции за blob сертификат кога libcurl >= 7.71.0:

Додадено CURLStringFile, што може да се користи за испраќање датотека од string наместо датотека:

<?php
$file
= new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

Додаден е формат за статус openmetrics. Може да се користи од Prometheus за преземање FPM метрики.

Додадена е нова опција за пул за динамичниот менаџер на процеси наречен pm.max_spawn_rate. Овозможува стартување на одреден број деца со побрза стапка кога е избран динамичен pm. Стандардната вредност е 32 , што беше претходната тврдо кодирана вредност.

GD

Поддршката за Avif сега е достапна преку imagecreatefromavif() and imageavif(), ако libgd е компајлиран со поддршка за Avif.

Хеш

Следниве функции hash(), hash_file()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во hash_init() сега поддржуваат дополнителен опционален options аргумент, кој може да се користи за проследување на податоци специфични за алгоритмот.

MurmurHash3

Додадена е поддршка за MurmurHash3 со поддршка за стриминг. Реализирани се следните варијанти:

  • murmur3a, 32-битна хаш
  • murmur3c, 128-битна хаш за x86
  • murmur3f, 128-битна хаш за x64

Почетната состојба на хашот може да се помине преку seed клучот во options низата, на пример:

<?php
$h
= hash("murmur3f", $data, options: ["seed" => 42]);
echo
$h, "\n";
?>
Валидната вредност на семето е во опсег од 0 до дефинираното од платформата UINT_MAX, обично 4294967295.

xxHash

Додадена е поддршка за xxHash. Имлементирани се следните варијанти:

  • xxh32, 32-битна хаш
  • xxh64, 64-битна хаш
  • xxh3, 64-битна хаш
  • xxh128, 128-битна хаш

Почетната состојба на хашот може да се помине преку seed клучот во options низата, на пример:

<?php
$h
= hash("xxh3", $data, options: ["seed" => 42]);
echo
$h, "\n";
?>
Употребата на тајна е поддржана со поминување на secret клучот во options низа, исто така:
<?php
$h
= hash("xxh3", $data, options: ["secret" => "at least 136 bytes long secret here"]);
echo
$h, "\n";
?>
Квалитетот на прилагодената тајна е клучен за квалитетот на добиениот хаш. Силно се препорачува тајната да користи најдобра можна ентропија.

MySQLi

Нова INI директива mysqli.local_infile_directory

На mysqli.local_infile_directory додадена е INI директива, која може да се користи за специфицирање директориум од кој се дозволени да се вчитуваат датотеки. Таа е значајна само ако mysqli.allow_local_infile не е овозможено, бидејќи во тој случај се дозволени сите директориуми.

Поврзување параметри во извршување

Сега е можно да се поврзат параметри со поминување како низа до mysqli_stmt::bind_param(). Сите вредности ќе бидат поврзани како низи. Дозволени се само листи низи. Оваа нова функција не е достапна кога MySQLi е компајлиран со libmysqlclient.

<?php
$stmt
= $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

Нов метод Нема начин да се врати друга колона од истиот ред ако ја користите оваа функција за преземање податоци.

Нема начин да се врати друга колона од истиот ред ако ја користите оваа функција за преземање податоци. е додаден за да овозможи преземање на една скаларна вредност од множеството резултати. Новиот метод прифаќа опционален 0-базиран column параметар од тип int кој специфицира кој столб да се преземе од.

<?php
$result
= $mysqli->query('SELECT username FROM users WHERE id = 123');
echo
$result->fetch_column();
?>

PDO

На PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY атрибут е додаден, кој може да се користи за специфицирање директориум од кој може да се вчитуваат датотеки. Тоа е значајно само ако PDO::MYSQL_ATTR_LOCAL_INFILE не е овозможено, бидејќи во тој случај се дозволени сите директориуми.

PDO_SQLite

на SQLite "file:" DSN синтаксата сега е поддржана, што овозможува специфицирање дополнителни знаменца. Оваа функција не е достапна ако е поставено open_basedir.

<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>

POSIX

Додадено POSIX_RLIMIT_KQUEUES and POSIX_RLIMIT_NPTS. Овие rlimits се достапни само на FreeBSD.

Стандардно

fputcsv() сега прифаќа нов eol аргумент кој овозможува дефинирање на сопствена секвенца за крај на редот, стандардната останува иста и е "\n".

SPL

SplFileObject::fgetcsv() сега прифаќа нов eol аргумент кој овозможува дефинирање на сопствена секвенца за крај на редот, стандардната останува иста и е "\n".

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

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

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

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

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

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

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