Files
doc-fr/language/types.xml
2023-11-21 02:14:38 +00:00

163 lines
5.1 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5fccbe5195820cd9ec0045674312ec567ef5f6ed Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<!-- CREDITS: DAnnebicque -->
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook">
<title>Les types</title>
<sect1 xml:id="language.types.intro">
<title>Introduction</title>
<para>
En PHP, chaque expression a l'un des types intégrés suivants en fonction de
sa valeur:
<itemizedlist>
<listitem><simpara><type>null</type></simpara></listitem>
<listitem><simpara><type>bool</type></simpara></listitem>
<listitem><simpara><type>int</type></simpara></listitem>
<listitem><simpara><type>float</type> (nombre à virgule flottante)</simpara></listitem>
<listitem><simpara><type>string</type></simpara></listitem>
<listitem><simpara><type>array</type></simpara></listitem>
<listitem><simpara><type>object</type></simpara></listitem>
<listitem><simpara><type>callable</type></simpara></listitem>
<listitem><simpara><type>resource</type></simpara></listitem>
</itemizedlist>
</para>
<para>
PHP est un langage typé dynamiquement, ce qui signifie que par défaut, il
n'est pas nécessaire de spécifier le type d'une variable, car cela sera
déterminé au moment de l'exécution. Cependant, il est possible de typer
statiquement certains aspects du langage en utilisant les
<link linkend="language.types.declarations">déclarations de type</link>.
</para>
<para>
Les types limitent le type d'opérations qui peuvent être effectuées sur eux.
Cependant, si une expression/variable est utilisée dans une opération que
son type ne supporte pas, PHP tentera de
<link linkend="language.types.type-juggling">jongler de type</link> dans un
type compatible avec l'opération.
Ce processus dépend du contexte dans lequel la valeur est utilisée.
Pour plus dinformations, consultez la section sur le
<link linkend="language.types.type-juggling">jonglage de type</link>.
</para>
<tip>
<simpara>
<link linkend="types.comparisons">Les tableaux de comparaison de type</link>
peuvent également être utiles, car divers exemples de comparaison entre des
valeurs de différents types sont présents.
</simpara>
</tip>
<note>
<simpara>
Il est possible de forcer lévaluation dune expression à un certain type en
utilisant un <link linkend="language.types.typecasting">type casting</link>.
Une variable peut également être convertie sur place à laide de la fonction
<function>settype</function>.
</simpara>
</note>
<para>
Pour vérifier le type et la valeur d'une
<link linkend="language.expressions">expression</link>, utilisez la fonction
<function>var_dump</function>.
Pour récupérer le type d'une
<link linkend="language.expressions">expression</link>,
utiliser la fonction <function>get_debug_type</function>.
Toutefois, pour vérifier si une expression est d'un certain type, utilisez
plutôt les fonctions
<!-- TODO When PhD support is there: <function>is_<replaceable>type</replaceable></function> -->
<literal>is_<replaceable>type</replaceable></literal>.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a_bool = TRUE; // un booléen
$a_str = "foo"; // une chaîne de caractères
$a_str2 = 'foo'; // une chaîne de caractères
$an_int = 12; // un entier
echo gettype($a_bool); // affiche : boolean
echo gettype($a_str); // affiche : string
// Si c'est un entier, incrément de 4
if (is_int($an_int)) {
$an_int += 4;
}
// Si $a_bool est une chaîne de caractères, on l'affiche
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
]]>
</programlisting>
&example.outputs.8;
<screen>
<![CDATA[
bool
string
int(16)
]]>
</screen>
</informalexample>
</para>
<note>
<simpara>
Antérieur à PHP 8.0.0, lorsque le <function>get_debug_type</function> nest pas
disponible, la fonction <function>gettype</function> peut être utilisée à
la place.
Cependant, elle nutilise pas les noms de type canoniques.
</simpara>
</note>
</sect1>
&language.types.type-system;
&language.types.null;
&language.types.boolean;
&language.types.integer;
&language.types.float;
&language.types.string;
&language.types.numeric-strings;
&language.types.array;
&language.types.object;
&language.types.enumerations;
&language.types.resource;
&language.types.callable;
&language.types.mixed;
&language.types.void;
&language.types.never;
&language.types.relative-class-types;
&language.types.value;
&language.types.iterable;
&language.types.declarations;
&language.types.type-juggling;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->