(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.
isim
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. PHP 5'te integer, float,
string, boolean veya null
türünde değerler
kabul edilirken PHP 7'de bunlara array türünde değerler de
eklenmiştir.
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.
Bilginize:
Harf büyüklüğüne duyarsız sabitler küçük harfli saklanır.
Başarı durumunda true
, başarısızlık durumunda false
döner.
Sürüm: | Açıklama |
---|---|
7.3.0 |
harf_büyüklüğüne_duyarsız değiştirgesinin
kullanımı önerilmemektedir. PHP 8.0.0 sürümünde kaldırılmıştı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)