|
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | | -<!-- EN-Revision: fc174e8d6162091550edde46159917ee7e5a2e73 Maintainer: sobak Status: ready --> |
| 2 | +<!-- EN-Revision: 7ddc30e0d2087d75b8f50da40668f4e422c6a4c5 Maintainer: sobak Status: ready --> |
3 | 3 | <sect1 xml:id="language.oop5.constants" xmlns="http://docbook.org/ns/docbook"> |
4 | 4 | <title>Stałe w klasach</title> |
5 | 5 | <para> |
@@ -120,6 +120,60 @@ Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in … |
120 | 120 | Od PHP 7.1.0 dla stałych klasach dozwolone są modyfikatory widoczności. |
121 | 121 | </para> |
122 | 122 | </note> |
| 123 | + <example> |
| 124 | + <title>Sprawdzanie wariancji widoczności stałej klasy, od PHP 8.3.0</title> |
| 125 | + <programlisting role="php"> |
| 126 | + <![CDATA[ |
| 127 | +<?php |
| 128 | +
|
| 129 | +interface MyInterface |
| 130 | +{ |
| 131 | + public const VALUE = 42; |
| 132 | +} |
| 133 | +
|
| 134 | +class MyClass implements MyInterface |
| 135 | +{ |
| 136 | + protected const VALUE = 42; |
| 137 | +} |
| 138 | +?> |
| 139 | +]]> |
| 140 | + </programlisting> |
| 141 | + &example.outputs.83; |
| 142 | + <screen> |
| 143 | + <![CDATA[ |
| 144 | +Fatal error: Access level to MyClass::VALUE must be public (as in interface MyInterface) … |
| 145 | +]]> |
| 146 | + </screen> |
| 147 | + </example> |
| 148 | + <note> |
| 149 | + <simpara> |
| 150 | + Od PHP 8.3.0 wariancja widoczności jest sprawdzana bardziej rygorystycznie. |
| 151 | + Przed tą wersją, widoczność stałej klasy mogła być inna |
| 152 | + od widoczności tej stałej w zaimplementowanym interfejsie. |
| 153 | + </simpara> |
| 154 | + </note> |
| 155 | + <example> |
| 156 | + <title>Składnia pobierania stałej klasy, od PHP 8.3.0</title> |
| 157 | + <programlisting role="php"> |
| 158 | + <![CDATA[ |
| 159 | +<?php |
| 160 | +class Foo { |
| 161 | + public const BAR = 'bar'; |
| 162 | + private const BAZ = 'baz'; |
| 163 | +} |
| 164 | +
|
| 165 | +$name = 'BAR'; |
| 166 | +echo Foo::{$name}, PHP_EOL; // bar |
| 167 | +?> |
| 168 | +]]> |
| 169 | + </programlisting> |
| 170 | + </example> |
| 171 | + <note> |
| 172 | + <para> |
| 173 | + Od PHP 8.3.0 stałe klas mogą być pobierane dynamicznie przy użyciu |
| 174 | + zmiennej. |
| 175 | + </para> |
| 176 | + </note> |
123 | 177 | </sect1> |
124 | 178 | <!-- Keep this comment at the end of the file |
125 | 179 | Local variables: |
|
0 commit comments