Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 49 additions & 1 deletion language/oop5/constants.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7ddc30e0d2087d75b8f50da40668f4e422c6a4c5 Maintainer: yannick Status: ready -->
<!-- EN-Revision: 922b4b5aeb327d78ea1bb4b932e5db2e9a03ffc5 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.oop5.constants" xmlns="http://docbook.org/ns/docbook">
<title>Constantes de classe</title>
Expand Down Expand Up @@ -30,6 +30,12 @@
Notez que les constantes de classe sont allouées une fois par classe, et non
pour chaque instance de classe.
</para>
<para>
À partir de PHP 8.3.0, les constantes de classe peuvent avoir un type scalaire tel que
<literal>bool</literal>, <literal>int</literal>, <literal>float</literal>, <literal>string</literal>,
ou même <literal>array</literal>. Lorsqu’on utilise <literal>array</literal>, son contenu
ne peut contenir que d'autres types scalaires.
</para>

<example>
<title>Définition et utilisation d'une constante de classe</title>
Expand Down Expand Up @@ -178,6 +184,48 @@ echo Foo::{$name}, PHP_EOL; // bar
variable.
</para>
</note>
<example>
<title>Attribution de types aux constantes de classe, à partir de PHP 8.3.0</title>
<programlisting role="php">
<![CDATA[
<?php

class MyClass {
public const bool MY_BOOL = true;
public const int MY_INT = 1;
public const float MY_FLOAT = 1.01;
public const string MY_STRING = 'one';
public const array MY_ARRAY = [self::MY_BOOL, self::MY_INT, self::MY_FLOAT, self::MY_STRING];
}

var_dump(MyClass::MY_BOOL);
var_dump(MyClass::MY_INT);
var_dump(MyClass::MY_FLOAT);
var_dump(MyClass::MY_STRING);
var_dump(MyClass::MY_ARRAY);
?>
]]>
</programlisting>
&example.outputs.83;
<screen>
<![CDATA[
bool(true)
int(1)
float(1.01)
string(3) "one"
array(4) {
[0]=>
bool(true)
[1]=>
int(1)
[2]=>
float(1.01)
[3]=>
string(3) "one"
}
]]>
</screen>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
Expand Down