Sabitler
PHP Manual

Söz dizimi

Bir sabiti define() işlevini kullanarak veya PHP 5.3.0'dan itibaren sınf tanımlarının dışında const anahtar sözcüğünü kullanarak tanımlayabilirsiniz. Bir sabit tanımlandıktan sonra, asla değiştirilemez ya da tanımsız yapılamaz.

Bir sabit ismine yalnızca bir sayıl değer (boolean, integer, float veya string) atanabilir. Sabitleri resource olarak kayıt altına almak mümkündür, fakat umulmadık sonuçlara yol açabileceğinden bundan kaçınılmalıdır.

Bir sabitin değerini basitçe ismini belirterek alabilirsiniz. Değişkenlerin aksine, sabitlerin önüne $ imi eklemeniz gerekmez. Bunun yanında, bir sabitin ismini devingen şekilde elde etmek isterseniz, sabitin değerini okumak için constant() işlevini de kullanabilirsiniz. Tanımlanmış sabitlerin tamamının bir listesini almak için, get_defined_constants() işlevini kullanabilirsiniz.

Bilginize: Sabitlerin ve (genel) değişkenlerin isim alanları farklıdır. Bu, örneğin TRUE ile $TRUE değerlerinin farklı olabilecekleri anlamına gelir.

Tanımlanmamış bir sabit ismi kullanırsanız, PHP, bir sabit değil bir sayıl değer kullanmak istediğinizi varsayar ve sabiti string türünde bir değer (SABIT yerine "SABIT" ) olarak ele alır. Böyle bir durumda E_NOTICE seviyesinde bir hata çıktılanır. Ayrıca, $foo[bar] kullanımının (evvelce define() işleviyle bar isminde bir sabit tanımlamamışsanız) neden yanlış olduğuyla ilgili açıklamayı $foo[bar] neden yanlıştır? başlığı altında bulabilirsiniz. Bir sabitin tanımlı olup olmadığını defined() işlevi sayesinde kolayca öğrenebilirsiniz.

Sabitler ve değişkenler arasındaki farklar:

Örnek 1 - Sabitlerin Tanımlanması

<?php
define
("CONSTANT""Merhaba dünya.");
echo 
CONSTANT// "Merhaba dünya" çıktılar.
echo Constant// "Constant" çıktılar ve bir bilgi iletisi gösterir.
?>

Örnek 2 - Sabitlerin const ile tanımlanması

<?php
// PHP 5.3.0 ve sonrasında çalışır
const CONSTANT 'Merhaba Dünya';

echo 
CONSTANT;
?>

Bilginize:

Sabitlerin define() kullanılarak tanımlanmasının tersine, const anahtar sözcüğü ile tanımlanan sabitler derleme sırasında tanımlandıklarından en üst seviye etki alanında bildirilmiş olmalıdır. Yani bunlar işlevlerin, döngülerin veya if deyimlerinin içinde bildirilemez.

Ayrıca, Sınıf Sabitleri belgesine de bakınız.


Sabitler
PHP Manual