(PHP 4, PHP 5, PHP 7, PHP 8)
define — Bir isimli sabit tanımlar
Çalışma sırasında bir isimli sabit tanımlamaya yarar.
sabit_ismi
Sabitin ismi.
Bilginize:
Ayrılmış ve hatta geçersiz adlarla sabit tanımlamak mümkündür. Bunların değeri (yalnızca) constant() ile alınabilir. Ancak bunu yapmanız önerilmez.
değer
Sabitin değeri. integer, float,
string, boolean, array
veya null
türünde değerler kabul edilir.
resource türünde sabitler tanımlamak mümkün ise de beklenmedik davranışlara yol açacağından bu önerilmez.
harf_büyüklüğüne_duyarsız
true
belirtilirse, tanımlanan sabitin ismi harf büyüklüğüne duyarsız
olarak tanımlanır. Öntanımlı davranış harf büyüklüğüne duyarlıdır; yani
SABiT
ve Sabit
farklı sabitler
olarak ele alınır.
PHP 7.3.0 ve sonrasında harf büyüklüğüne duyarsız sabitlerin kullanımı
önerilmemektedir.
PHP 8.0.0 ve sonrasında, sadece false
değeri kabul
edilmektedir. true
değeri bir uyarı üretecektir.
Bilginize:
Harf büyüklüğüne duyarsız sabitler küçük harfli saklanır.
Sürüm: | Açıklama |
---|---|
8.0.0 |
harf_büyüklüğüne_duyarsız bağımsız değişkeninde
true aktarımı artık bir E_WARNING çıktılıyor.
false aktarımı ise hala destekleniyor.
|
7.3.0 |
harf_büyüklüğüne_duyarsız bağımsız değişkeninin
kullanımı önerilmemektedir. PHP 8.0.0 sürümünde kaldırılacaktır.
|
7.0.0 | array türünde değerlere izin verilmektedir. |
Örnek 1 - Sabit tanımlamak
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // çıktısı: "Hello world."
echo Constant; // çıktısı: "Constant" Ayrıca bir uyarı çıktılanır.
define("GREETING", "Hello you.", true);
echo GREETING; // çıktısı: "Hello you."
echo Greeting; // çıktısı: "Hello you."
// PHP 7 ve sonrasında çalışır
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[1]; // çıktısı: "cat"
?>
Örnek 2 - Ayrılmış isimli sabitler
Bu örnek, bir sihirli sabit ile aynı ada sahip bir sabiti tanımlama durumundaki davranışı göstermektedir. Ortaya çıkan davranış açıkça kafa karıştırıcı olduğundan, pratikte bunu yapmanız önerilmez.
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>
Yukarıdaki örneğin çıktısı:
bool(false) bool(true) string(4) "test" int(5)