<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration85.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'migration85.incompatible.php',
    1 => 'Changements non r&eacute;trocompatibles',
    2 => 'Changements non r&eacute;trocompatibles',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Migration de PHP 8.4.x vers PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.constants.php',
    1 => 'Nouvelles constantes globales',
  ),
  'next' => 
  array (
    0 => 'migration85.deprecated.php',
    1 => 'Fonctionnalit&eacute;s d&eacute;pr&eacute;ci&eacute;es',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'appendices/migration85/incompatible.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.incompatible" class="sect1">
 <h2 class="title">Changements non rétrocompatibles</h2>

 <div class="sect2" id="migration85.incompatible.core">
  <h3 class="title">PHP Core</h3>

  <div class="sect3" id="migration85.incompatible.core.array-callable-alias">
   <h4 class="title">Les noms d&#039;alias <code class="literal">&quot;array&quot;</code> et <code class="literal">&quot;callable&quot;</code></h4>

   <p class="simpara">
    Il n&#039;est plus possible d&#039;utiliser <code class="literal">&quot;array&quot;</code>
    et <code class="literal">&quot;callable&quot;</code> comme noms d&#039;alias de classe
    dans <span class="function"><a href="function.class-alias.php" class="function">class_alias()</a></span>
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.loosely-comparing-object">
   <h4 class="title">Comparaison approximative d&#039;objets non comparables</h4>

   <p class="simpara">
    Comparer approximativement des objets non comparables (par exemple des enums,
    <span class="classname"><a href="class.curlhandle.php" class="classname">CurlHandle</a></span> et d&#039;autres classes internes) à des booléens
    était auparavant incohérent. Si comparé à un littéral booléen
    <code class="code">$object == true</code>, il se comportait de la même manière que
    <code class="code">(bool)$object</code>. Si comparé à une valeur statiquement inconnue
    <code class="code">$object == $true</code>, il retournait toujours <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Ce comportement a été consolidé pour toujours suivre le comportement de
    <code class="code">(bool)$object</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.gc-collect-cycles">
   <h4 class="title">Valeur de retour de gc_collect_cycles</h4>

   <p class="simpara">
    La valeur de retour de <span class="function"><a href="function.gc-collect-cycles.php" class="function">gc_collect_cycles()</a></span> n&#039;inclut plus
    les chaînes et ressources qui ont été collectées indirectement via des cycles.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.substitute-final-subclasses">
   <h4 class="title">Substituer le mot-clé static dans une sous-classe finale</h4>

   <p class="simpara">
    Il est désormais permis de substituer <span class="type">static</span> par <span class="type">self</span> ou le nom concret de la classe
    dans les sous-classes finales.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.tick-handlers">
   <h4 class="title">Gestionnaires de tick</h4>

   <p class="simpara">
    Les gestionnaires de tick sont désormais désactivés après l&#039;exécution de toutes les fonctions de fermeture,
    la destruction des objets et le nettoyage des gestionnaires de sortie.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.trait-binding">
   <h4 class="title">Liaison des traits</h4>

   <p class="simpara">
    Les traits sont désormais liés avant la classe parente. Il s&#039;agit d&#039;un changement comportemental subtil,
    mais qui devrait mieux correspondre aux attentes des utilisateurs.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.errors-compilation-and-linking">
   <h4 class="title">Erreurs lors de la compilation et du chaînage des classes</h4>

   <p class="simpara">
    Les erreurs émises lors de la compilation et du chaînage des classes sont désormais toujours différées
    et traitées après la compilation ou le chaînage des classes. Les erreurs fatales émises
    lors de la compilation ou du chaînage des classes provoquent le traitement immédiat
    de toutes les erreurs différées, sans appeler les gestionnaires d&#039;erreurs définis par l&#039;utilisateur.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.exception-by-userdefined-handler">
   <h4 class="title">Exceptions levées par les gestionnaires d&#039;erreurs définis par l&#039;utilisateur</h4>

   <p class="simpara">
    Les exceptions levées par les gestionnaires d&#039;erreurs définis par l&#039;utilisateur lors du traitement des erreurs
    de chaînage des classes ne sont plus promues en erreurs fatales et n&#039;empêchent plus le chaînage.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.attribute-during-compilation">
   <h4 class="title">Erreur d&#039;application d&#039;attribut lors de la compilation</h4>

   <p class="simpara">
    Appliquer <code class="code">#[\Attribute]</code> à une classe abstraite, un enum, une interface ou un trait
    déclenche une erreur lors de la compilation. Auparavant, l&#039;attribut pouvait être
    ajouté, mais lorsqu&#039;<span class="methodname"><a href="reflectionattribute.newinstance.php" class="methodname">ReflectionAttribute::newInstance()</a></span>
    était appelé, une erreur était levée.
    L&#039;erreur peut être différée de la compilation à l&#039;exécution en utilisant le nouvel
    attribut <code class="code">#[\DelayedTargetValidation]</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.disable-ini-setting">
   <h4 class="title">Le paramètre INI disable_classes</h4>

   <p class="simpara">
    Le paramètre INI <a href="ini.core.php#ini.disable-classes" class="link">disable_classes</a>
    a été supprimé car il provoque la rupture de diverses hypothèses du moteur.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.destruct-non-array-values">
   <h4 class="title">Destructuration de valeurs non-tableaux</h4>

   <p class="simpara">
    Destructurer des valeurs non-tableaux (autres que <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>) en utilisant <code class="literal">[]</code> ou <span class="function"><a href="function.list.php" class="function">list()</a></span>
    émet désormais un avertissement.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.warning-related-to-cast">
   <h4 class="title">Avertissements liés au cast</h4>

   <p class="simpara">
    Un avertissement est désormais émis lors du cast de flottants (ou de chaînes ressemblant
    à des flottants) en entiers s&#039;ils ne peuvent pas être représentés comme tels. Cela affecte
    les casts explicites en int et les casts implicites en int.
    
   </p>

   <p class="simpara">
    Un avertissement est désormais émis lors du cast de NAN vers d&#039;autres types.
    
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.incompatible.bzip2">
  <h3 class="title">Bzip2</h3>

  <p class="simpara">
   <span class="function"><a href="function.bzcompress.php" class="function">bzcompress()</a></span> lève désormais une <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>
   lorsque <code class="parameter">$block_size</code> n&#039;est pas compris entre 1 et 9.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.bzcompress.php" class="function">bzcompress()</a></span> lève désormais une <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>
   lorsque <code class="parameter">$work_factor</code> n&#039;est pas compris entre 0 et 250.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.dom">
  <h3 class="title">DOM</h3>

  <p class="simpara">
   Cloner un <span class="classname"><a href="class.domnamednodemap.php" class="classname">DOMNamedNodeMap</a></span>,
   <span class="classname"><a href="class.domnodelist.php" class="classname">DOMNodeList</a></span>, <span class="classname"><a href="class.dom-namednodemap.php" class="classname">Dom\NamedNodeMap</a></span>,
   <span class="classname"><a href="class.dom-nodelist.php" class="classname">Dom\NodeList</a></span>, <span class="classname"><a href="class.dom-htmlcollection.php" class="classname">Dom\HTMLCollection</a></span>,
   et <span class="classname"><a href="class.dom-dtdnamednodemap.php" class="classname">Dom\DtdNamedNodeMap</a></span> échoue désormais.
   Cela n&#039;a jamais réellement abouti à un objet fonctionnel, donc aucun impact n&#039;est attendu.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.fileinfo">
  <h3 class="title">FileInfo</h3>

  <p class="simpara">
   <span class="function"><a href="function.finfo-file.php" class="function">finfo_file()</a></span> et <span class="methodname"><a href="finfo.file.php" class="methodname">finfo::file()</a></span>
   lèvent désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> à la place de
   <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> lorsque <code class="parameter">$filename</code>
   contient des octets nuls.
   Cela aligne le type d&#039;erreur levée pour être cohérent avec le reste du
   langage.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.intl">
  <h3 class="title">Intl</h3>

  <p class="simpara">
   L&#039;extension nécessite désormais au moins ICU 57.1.
  </p>

  <p class="simpara">
   <span class="methodname"><a href="intldateformatter.settimezone.php" class="methodname">IntlDateFormatter::setTimeZone()</a></span>/<span class="function"><a href="intldateformatter.settimezone.php" class="function">datefmt_set_timezone()</a></span>
   lèvent désormais une <span class="exceptionname"><a href="class.intlexception.php" class="exceptionname">IntlException</a></span> en cas de classes non initialisées
   ou d&#039;échecs de clonage.
  </p>

  <p class="simpara">
   Toutes les méthodes <span class="classname"><a href="class.locale.php" class="classname">Locale</a></span> lèvent désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque l&#039;argument locale contient des octets nuls.
  </p>

  <p class="simpara">
   Le comportement de <strong><code><a href="class.collator.php#collator.constants.sort-regular">Collator::SORT_REGULAR</a></code></strong> en ce qui concerne
   la gestion des chaînes numériques est désormais aligné sur le comportement de
   <strong><code><a href="array.constants.php#constant.sort-regular">SORT_REGULAR</a></code></strong> dans ext/standard.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.ldap">
  <h3 class="title">LDAP</h3>

  <p class="simpara">
   <span class="function"><a href="function.ldap-get-option.php" class="function">ldap_get_option()</a></span> et <span class="function"><a href="function.ldap-set-option.php" class="function">ldap_set_option()</a></span>
   lèvent désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsqu&#039;une option invalide est passée.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.mbstring">
  <h3 class="title">MBString</h3>

  <p class="simpara">
   Les tables de données Unicode ont été mises à jour vers Unicode 17.0
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.mysqli">
  <h3 class="title">MySQLi</h3>

  <p class="simpara">
   L&#039;appel au constructeur mysqli sur un objet déjà construit
   n&#039;est désormais plus possible et génère une <span class="exceptionname"><a href="class.error.php" class="exceptionname">Error</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.odbc">
  <h3 class="title">ODBC</h3>

  <p class="simpara">
   ODBC suppose désormais qu&#039;au moins la fonctionnalité ODBC 3.5 est disponible.
   La définition ODBCVER et les indicateurs du système de construction pour la contrôler ont été supprimés.
  </p>

  <p class="simpara">
   ODBC ne dispose plus d&#039;indicateurs de construction pour construire avec des pilotes spécifiques (sauf
   pour DB2) et supprime les cas spéciaux pour ces pilotes. Il est fortement
   recommandé d&#039;utiliser un gestionnaire de pilotes comme iODBC ou unixODBC sur les systèmes non Windows.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.opcache">
  <h3 class="title">Opcache</h3>

  <p class="simpara">
   L&#039;extension Opcache est désormais toujours intégrée dans le binaire PHP et toujours
   chargée.
   Les directives INI <a href="opcache.configuration.php#ini.opcache.enable" class="link">opcache.enable</a>
   et <a href="opcache.configuration.php#ini.opcache.enable-cli" class="link">opcache.enable_cli</a> sont toujours
   prises en compte.
  </p>

  <p class="simpara">
   Les options de configuration <strong class="option configure">--enable-opcache</strong>/<strong class="option configure">--disable-opcache</strong>
   ont été supprimées, et la compilation ne produit plus les fichiers <var class="filename">opcache.so</var>
   ou <var class="filename">php_opcache.dll</var>.
  </p>

  <p class="simpara">
   L&#039;utilisation des directives INI <code class="literal">zend_extension=opcache.so</code> ou
   <code class="literal">zend_extension=php_opcache.dll</code>
   émettra un avertissement.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pcntl">
  <h3 class="title">PCNTL</h3>

  <p class="simpara">
   <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span> lève désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>
   lorsque les entrées du paramètre <code class="parameter">$args</code> contiennent des octets nuls.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span> lève désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>
   lorsque les entrées ou les clés du paramètre <code class="parameter">$env_vars</code>
   contiennent des octets nuls.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pcre">
  <h3 class="title">PCRE</h3>

  <p class="simpara">
   L&#039;extension est compilée sans l&#039;option semi-dépréciée
   PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK.
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo">
  <h3 class="title">PDO</h3>

  <p class="simpara">
   Les arguments du constructeur définis en conjonction avec
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> suivent désormais la sémantique habituelle de CUFA
   (<span class="function"><a href="function.call-user-func-array.php" class="function">call_user_func_array()</a></span>).
   Cela signifie que les clés de chaîne agiront comme des arguments nommés.
   De plus, l&#039;encapsulation automatique pour les arguments par valeur passés à un paramètre par référence
   a été supprimée, et l&#039;habituel <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
   à ce sujet est désormais émis.
   Pour passer une variable par référence à un argument de constructeur, utiliser l&#039;affectation
   de référence de valeur de tableau générale : <code class="code">$ctor_args = [&amp;$valByRef]</code>
  </p>

  <p class="simpara">
   Essayer d&#039;appeler <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span> pendant
   un appel à <span class="methodname"><a href="pdostatement.fetch.php" class="methodname">PDOStatement::fetch()</a></span>,
   <span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname">PDOStatement::fetchObject()</a></span>,
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>, par exemple en utilisant des astuces telles que
   passer l&#039;objet statement comme argument de constructeur lors de la récupération dans un
   objet, lèvera désormais une <span class="exceptionname"><a href="class.error.php" class="exceptionname">Error</a></span>.
  </p>

  <p class="simpara">
   La valeur des constantes <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-classtype">PDO::FETCH_CLASSTYPE</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong>, et
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-serialize">PDO::FETCH_SERIALIZE</a></code></strong> a changé.
  </p>

  <p class="simpara">
   Une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> est désormais levée si
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> est utilisé avec un mode de récupération
   différent de <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>, cohérent avec
   les autres indicateurs de récupération.
  </p>

  <p class="simpara">
   Une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> est désormais levée si
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-into">PDO::FETCH_INTO</a></code></strong> est utilisé comme mode de récupération dans
   <span class="methodname"><strong>PDO::fetchAll()</strong></span>,
   similaire à <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-lazy">PDO::FETCH_LAZY</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo-firebird">
  <h3 class="title">PDO_FIREBIRD</h3>

  <p class="simpara">
   Une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> est désormais levée lorsqu&#039;on
   essaie de définir un nom de curseur trop long sur un <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>
   résultant du pilote Firebird.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo-sqlite">
  <h3 class="title">PDO_SQLITE</h3>

  <p class="simpara">
   SQLite <span class="methodname"><a href="pdo.quote.php" class="methodname">PDO::quote()</a></span> lève désormais une exception
   ou émet un avertissement, en fonction du mode d&#039;erreur, si la chaîne contient
   un octet nul.
  </p>

  <p class="simpara">
   <span class="methodname"><a href="pdo.sqlitecreatecollation.php" class="methodname">PDO::sqliteCreateCollation()</a></span> lève désormais une exception
   si le callback a un type de retour incorrect, ce qui le rend plus
   conforme au comportement de <span class="methodname"><a href="pdo-sqlite.createcollation.php" class="methodname">Pdo\Sqlite::createCollation()</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.posix">
  <h3 class="title">POSIX</h3>

  <p class="simpara">
   <span class="function"><a href="function.posix-kill.php" class="function">posix_kill()</a></span> lève désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque l&#039;argument process_id est
   inférieur ou supérieur à ce que la plateforme supporte (entier signé ou
   plage longue), <span class="function"><a href="function.posix-setpgid.php" class="function">posix_setpgid()</a></span> lève désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque process_id ou
   process_group_id est inférieur à zéro ou supérieur à ce que la plateforme
   supporte.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.posix-setrlimit.php" class="function">posix_setrlimit()</a></span> lève désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque les arguments hard_limit ou
   soft_limit sont inférieurs à -1 ou si soft_limit est supérieur à
   hard_limit.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.reflection">
  <h3 class="title">Reflection</h3>

  <p class="simpara">
   <span class="methodname"><a href="reflectionattribute.newinstance.php" class="methodname">ReflectionAttribute::newInstance()</a></span> peut désormais lever
   des erreurs pour les attributs internes si l&#039;attribut a été appliqué sur une cible
   invalide et que l&#039;erreur a été différée du temps de compilation au temps d&#039;exécution
   via l&#039;attribut #[\DelayedTargetValidation].
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.session">
  <h3 class="title">Session</h3>

  <p class="simpara">
   Tenter d&#039;écrire des données de session lorsque <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> a une clé
   contenant le caractère pipe (<code class="literal">|</code>) émettra désormais un avertissement
   au lieu d&#039;échouer silencieusement.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> est désormais plus stricte concernant l&#039;argument options.
   Elle lève désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> si
   le tableau n&#039;est pas une table de hachage, ou une <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span>
   si la valeur read_and_close n&#039;est pas d&#039;un type valide compatible avec int.
  </p>

  <p class="simpara">
   Passer un entier <code class="literal">0</code> comme argument <code class="parameter">locales</code>
   à <span class="function"><a href="function.setlocale.php" class="function">setlocale()</a></span> n&#039;est plus supporté et lève désormais une
   <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.simplexml">
  <h3 class="title">SimpleXML</h3>

  <p class="simpara">
   Passer une expression XPath qui retourne autre chose qu&#039;un ensemble de nœuds
   à <span class="methodname"><a href="simplexmlelement.xpath.php" class="methodname">SimpleXMLElement::xpath()</a></span> émettra désormais un avertissement
   et retournera <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, au lieu d&#039;échouer silencieusement et de retourner un tableau vide.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.snmp">
  <h3 class="title">SNMP</h3>

  <p class="simpara">
   <span class="function"><a href="function.snmpget.php" class="function">snmpget()</a></span>,
   <span class="function"><a href="function.snmpset.php" class="function">snmpset()</a></span>,
   <span class="function"><a href="function.snmp2-get.php" class="function">snmp2_get()</a></span>,
   <span class="function"><a href="function.snmp2-set.php" class="function">snmp2_set()</a></span>,
   <span class="function"><a href="function.snmp3-get.php" class="function">snmp3_get()</a></span>,
   <span class="function"><a href="function.snmp3-set.php" class="function">snmp3_set()</a></span>
   et <span class="methodname"><a href="snmp.construct.php" class="methodname">SNMP::__construct()</a></span> lèvent désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque le nom d&#039;hôte
   est trop grand, contient un octet nul ou si le port est donné
   lorsqu&#039;il est négatif ou supérieur à 65535, les valeurs de délai d&#039;attente et de tentatives
   sont inférieures à -1 ou trop grandes.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.soap">
  <h3 class="title">SOAP</h3>

  <p class="simpara">
   <span class="methodname"><a href="soapclient.dorequest.php" class="methodname">SoapClient::__doRequest()</a></span> accepte désormais un nouveau
   paramètre optionnel <code class="parameter">$uriParserClass</code> acceptant
   des arguments de type string ou <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
   <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> représente la méthode originale basée sur (<span class="function"><a href="function.parse-url.php" class="function">parse_url()</a></span>),
   tandis que les nouveaux backends seront utilisés lorsqu&#039;on passe soit
   <span class="classname"><a href="class.uri-rfc3986-uri.php" class="classname">Uri\Rfc3986\Uri</a></span> ou <span class="classname"><a href="class.uri-whatwg-url.php" class="classname">Uri\WhatWg\Url</a></span>.
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.sockets">
  <h3 class="title">Sockets</h3>

  <p class="simpara">
   <span class="function"><a href="function.socket-create-listen.php" class="function">socket_create_listen()</a></span>,
   <span class="function"><a href="function.socket-bind.php" class="function">socket_bind()</a></span> et <span class="function"><a href="function.socket-sendto.php" class="function">socket_sendto()</a></span>
   lèvent désormais une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> si le port est inférieur
   à 0 ou supérieur à 65535, et également si l&#039;une des entrées du tableau hints est
   indexée numériquement.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-addrinfo-lookup.php" class="function">socket_addrinfo_lookup()</a></span> lève désormais une
   <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> si l&#039;une des valeurs de hints ne peut pas
   être convertie en int et peut lever une <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> si
   l&#039;une de ces valeurs dépasse la capacité.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-set-option.php" class="function">socket_set_option()</a></span> avec les options
   <strong><code><a href="sockets.constants.php#constant.mcast-leave-group">MCAST_LEAVE_GROUP</a></code></strong>/<strong><code><a href="sockets.constants.php#constant.mcast-leave-source-group">MCAST_LEAVE_SOURCE_GROUP</a></code></strong>
   lève désormais une exception si la valeur n&#039;est pas un objet ou un tableau valide.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-set-option.php" class="function">socket_set_option()</a></span> avec le contexte multicast lève désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> lorsque le socket créé n&#039;est pas de la famille
   <strong><code><a href="sockets.constants.php#constant.af-inet">AF_INET</a></code></strong>/<strong><code><a href="sockets.constants.php#constant.af-inet6">AF_INET6</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.spl">
  <h3 class="title">SPL</h3>

  <p class="simpara">
   <span class="classname"><a href="class.arrayobject.php" class="classname">ArrayObject</a></span> n&#039;accepte plus les enums, car la modification des
   propriétés <span class="property">$name</span> ou <span class="property">$value</span> peut casser
   les hypothèses du moteur.
  </p>

  <p class="simpara">
   Le paramètre <code class="parameter">$length</code> de
   la fonction <span class="methodname"><a href="splfileobject.fwrite.php" class="methodname">SplFileObject::fwrite()</a></span>
   est désormais nullable.
   La valeur par défaut est passée de <code class="literal">0</code> à <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.standard">
  <h3 class="title">Standard</h3>

  <p class="simpara">
   L&#039;utilisation d&#039;une fonction de la famille printf avec un formateur qui ne spécifiait pas la
   précision réinitialisait incorrectement la précision au lieu de la traiter
   comme une précision de 0.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.tidy">
  <h3 class="title">Tidy</h3>

  <p class="simpara">
   <span class="methodname"><a href="tidy.construct.php" class="methodname">tidy::__construct()</a></span>,
   <span class="methodname"><a href="tidy.parsefile.php" class="methodname">tidy::parseFile()</a></span>,
   <span class="methodname"><a href="tidy.parsestring.php" class="methodname">tidy::parseString()</a></span> lève désormais une
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> si la configuration contient une
   valeur invalide ou tente de définir une entrée interne en lecture seule,
   et une <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> si une clé de configuration n&#039;est pas une
   chaîne.
  </p>

 </div>

</div><?php manual_footer($setup); ?>