23,090
回編集
(→クラス: const) |
|||
class SimpleClass
{
const
}
$dummy = new SimpleClass;
print($dummy::
?>
3
</pre>
下記は、意図的にセミコロン2個とアロー演算子を間違えた例です。
<syntaxhighlight lang="PHP">
<?php
class SimpleClass
{
const var1 = 1+2;
}
$dummy = new SimpleClass;
print($dummy::var1) . "\n";
// $dummy::var1 = 5; // エラーになる
$dummy->var1 = 5; // アローのほうに定義できるが・・・
print($dummy::var1) . "\n"; // セミコロン2個のほうは3のまま
print($dummy->var1) . "\n"; //
?>
</syntaxhighlight>
実行結果
<pre>
3
Deprecated: Creation of dynamic property SimpleClass::$var1 is deprecated in /home/ユーザー名/test.php on line 12
3
5
</pre>
このように、アロー演算子のとセミコロン2個のは、それぞれ別々の変数として扱われます。
「Deprecated: 」と警告的なメッセージが出るように、これはバグの原因になりやすいので、const宣言したクラス変数のアロー演算子変数の作成は、なるべく避けるのが安全でしょう。
[[Category:PHP|*]]
|
回編集