Les entiers octaux peuvent maintenant utiliser un préfixe explicite
0o/0O
dans les littéraux d'entiers,
de maniÚre similaire aux littéraux d'entiers binaires et hexadécimaux.
<?php
014; // Littéral octal sans préfixe
0o14; // Littéral octal préfixé
?>Ajout du support pour La décompression de tableau avec des clés chaßnes de caractÚres.
<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>Il est désormais possible de spécifier des arguments nommés aprÚs une décompression d'argument. par exemple : foo(...$args, named: $arg).
Les téléchargements de fichiers fournissent désormais une clé full_path supplémentaire,
qui contient le chemin complet (plutÎt que juste le nom de base) du fichier téléchargé.
Ceci est destinĂ© Ă ĂȘtre utilisĂ© en conjonction avec "upload webkitdirectory".
Le support pour les énumérations a été ajouté.
Le support pour les fibres a été ajouté.
Les fermetures pour les callables peuvent maintenant ĂȘtre créées en utilisant la syntaxe myFunc(...),
qui est identique Ă Closure::fromCallable('myFunc').
Note: Le
...fait partie de la syntaxe, et non une omission.
Le support pour les intersection de types a été ajouté.
Les types d'intersection ne peuvent pas ĂȘtre utilisĂ©s avec les types d'union
Un nouveau type de retour never a été ajouté. Cela indique qu'une fonction soit exit(), lance une exception, ou ne se termine pas.
new dans les initialiseurs
Il est désormais possible d'utiliser des expressions new ClassName() comme
valeur par défaut d'un paramÚtre, d'une variable statique, d'initialisateurs de constantes globales,
et comme arguments d'attribut.
Les objets peuvent Ă©galement ĂȘtre passĂ©s Ă define() maintenant.
Le support pour la lecture seule a été ajouté.
Ajout du support pour le modificateur final pour les constantes de classes. Aussi, les constantes d'interface deviennent surchargeables par défaut.
Ajout de l'option CURLOPT_DOH_URL.
Ajout des options pour les certificats blob lorsque libcurl >= 7.71.0:
CURLOPT_ISSUERCERT_BLOB
CURLOPT_PROXY_ISSUERCERT
CURLOPT_PROXY_ISSUERCERT_BLOB
CURLOPT_PROXY_SSLCERT_BLOB
CURLOPT_PROXY_SSLKEY_BLOB
CURLOPT_SSLCERT_BLOB
CURLOPT_SSLKEY_BLOB
Ajout de CURLStringFile, qui peut ĂȘtre utilisĂ© pour envoyer un fichier Ă partir d'une chaĂźne de caractĂšres plutĂŽt qu'un fichier:
<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>Ajout du format de statut openmetrics. Il peut ĂȘtre utilisĂ© par Prometheus pour rĂ©cupĂ©rer les mĂ©triques FPM.
Ajout d'une nouvelle option de pool pour le gestionnaire de processus dynamique appelée
pm.max_spawn_rate. Elle permet de démarrer un nombre d'enfants
à un rythme plus rapide lorsque le gestionnaire de processus dynamique est sélectionné.
La valeur par défaut est 32 qui était la valeur précédente
codée en dur.
Le support Avif est maintenant disponible via imagecreatefromavif() et imageavif(), si libgd a été compilé avec le support Avif.
Les fonctions suivantes hash(),
hash_file(), et hash_init()
supportent maintenant un nouvel argument optionnel options,
qui peut ĂȘtre utilisĂ© pour passer des donnĂ©es spĂ©cifiques Ă l'algorithme.
Ajout du support pour MurmurHash3 avec support de streaming.
Les variantes suivantes sont implémentées:
L'Ă©tat de hachage initial peut ĂȘtre passĂ© via la clĂ© seed
dans le tableau options, par exemple:
<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>0
à la UINT_MAX définie par la plateforme, généralement
4294967295.
Ajout du support pour xxHash.
Les variantes suivantes sont implémentées:
L'Ă©tat de hachage initial peut ĂȘtre passĂ© via la clĂ© seed
dans le tableau options, par exemple:
<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>secret
dans le tableau options, aussi :
<?php
$h = hash("xxh3", $data, options: ["secret" => "at least 136 bytes long secret here"]);
echo $h, "\n";
?>mysqli.local_infile_directoryLa directive INI mysqli.local_infile_directory a Ă©tĂ© ajoutĂ©e, qui peut ĂȘtre utilisĂ©e pour spĂ©cifier un rĂ©pertoire Ă partir duquel les fichiers sont autorisĂ©s Ă ĂȘtre chargĂ©s. Elle n'a de sens que si mysqli.allow_local_infile n'est pas activĂ©, car tous les rĂ©pertoires sont autorisĂ©s dans ce cas.
Il est désormais possible d'affecter des paramÚtres en les passant comme un tableau à mysqli_stmt::execute(). Toutes les valeurs seront affectées en tant que chaßnes de caractÚres. Seuls les tableaux de liste sont autorisés. Cette nouvelle fonctionnalité n'est pas disponible lorsque MySQLi est compilé avec libmysqlclient.
<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>
mysqli_result::fetch_column()
a été ajouté pour permettre de récupérer une seule valeur scalaire du jeu de résultats.
La nouvelle méthode accepte un paramÚtre de colonne facultatif column basé sur 0
de type entier spécifiant quelle colonne récupérer.
<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>
L'attribut PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY a été ajouté,
qui peut ĂȘtre utilisĂ© pour spĂ©cifier un rĂ©pertoire Ă partir duquel les fichiers
sont autorisĂ©s Ă ĂȘtre chargĂ©s.
Elle n'a de sens que si PDO::MYSQL_ATTR_LOCAL_INFILE
n'est pas activé, car tous les répertoires sont autorisés dans ce cas.
La syntaxe DSN "file:" de SQLite est maintenant supportée,
ce qui permet de spécifier des drapeaux supplémentaires.
Cette fonctionnalité n'est pas disponible si open_basedir est défini.
<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>
Ajout de POSIX_RLIMIT_KQUEUES et POSIX_RLIMIT_NPTS.
Ces limites soft et hard ne sont disponibles que sur FreeBSD.
fputcsv() accepte désormais un nouvel argument
eol qui permet de définir une séquence
de fin de ligne personnalisĂ©e, la valeur par dĂ©faut reste la mĂȘme et est "\n".
SplFileObject::fputcsv() accepte désormais un nouvel argument
eol qui permet de définir une séquence
de fin de ligne personnalisĂ©e, la valeur par dĂ©faut reste la mĂȘme et est "\n".