میتوان مقادیر ثابت براساس کلاس تعریف نمود تا بدون تغییر باقی بمانند. ثابتها از متغیرهای نرمال متفاوت هستند که سمبل $ برای اعلام یا استفاده از آن استفاده نمیشود.
مقدار باید یک عبارت ثابت باشد نه به عنوان نمونه یک متغیر یک عضو کلاس نتیجه یک عبارت ریاضی یا یک فراخوانی تابع باشد.
همچنین واسطها قادرند شامل constants باشند. به مثالهایمستندات واسط نگاه کنید.
از زمان PHP 5.3.0 میتوان به یک کلاس با استفاده از یک تابع ارجاع داد . مقدار متغیر نمیتواند کلمه کلیدی باشد (برای نمونه self٬ parent و static).
Example #1 تعریف و استفاده از ثابت
<?php
class MyClass
{
const constant = 'constant value';
function showConstant() {
echo self::constant . "\n";
}
}
echo MyClass::constant . "\n";
$classname = "MyClass";
echo $classname::constant . "\n"; // As of PHP 5.3.0
$class = new MyClass();
$class->showConstant();
echo $class::constant."\n"; // As of PHP 5.3.0
?>
Example #2 نمونه داده استاتیک
<?php
class foo {
// As of PHP 5.3.0
const bar = <<<'EOT'
bar
EOT;
}
?>
برخلاف heredoc nowdoc میتوانند در متن داده استاتیک استفاده شود.
Note:
پشتیبانی از Nowdoc در PHP 5.3.0 اضافه شده است.