İçeriğe atla

PHP/Sabitler

Vikikitap, özgür kütüphane
< PHP

Sabitler, değişkenler gibi bir değer tutar. Ancak değişkenler gibi değerleri değiştirilemez. Yani bir sabit bir kez tanımlandıktan ve bir değer aldıktan sonra değeri programın herhangi bir yerinde değiştirilemez veya tanımsız hale getirilemez. Sabitler boolean, integer, float ve string türünde değer alabilir. Sabitler isimlendirilirken, değişkenlerdeki gibi $ işareti kullanmaya gerek yoktur.

define()

[değiştir]

Sabitler define() işlevi ile tanımlanır ve programın her yerinden erişilebilirler.

<?php
define("KULLANICI", "admin");
define("PAROLA", "123456");
?>

Burada "admin" değeri alan KULLANICI isimli ve "123456" değeri alan PAROLA isimli iki sabit tanımlandı.

<?php
define("KULLANICI", "admin");
define("PAROLA", "123456");
echo KULLANICI; // admin çıktılar
?>
<?php
define("1SABIT", "Bir değer"); // bu hatalıdır. sabit isimleri rakamla başlayamaz
define("_1SABIT", "Bir değer"); // bu geçerli
_1SABIT = "Başka değer"; // hatalı. sabitlerin değeri değiştirilemez
define("PI_SAYISI", 3.14); // geçerli
define(E_SAYISI, 2.718); // geçersiz. sabit ismi çift tırnak içine yazılmalıdır
?>

const

[değiştir]

Sabitler define() işlevi dışında, const deyimiyle de tanımlanabilir.

<?php
const MEKAN = "Vikikitap";
?>

const ile tanımlanan sabitlerin isimlerinin tırnak içinde yazılması gerekmez. define() ile tanımlanan sabitlerle bir istisna dışında aynı kurallara tabidir ve aynı özellikleri taşır. Bir sabit define() ile programın herhangi bir yerinde tanımlanabilirken const ile tanımlanan sabitler; fonksiyonlar, akış denetimleri, döngüler gibi iç bloklarda değil programın en üst seviyesinde tanımlanmalıdır. Bunun nedeni const ile tanımlanan sabitlerin derleme zamanı ele alınmasıdır.

defined() işlevi

[değiştir]

defined() işlevi, bir sabitin tanımlı olup olmadığına bakar ve geriye mantıksal (boolean) bir değer döndürür.

<?php
define("MEKAN", "Vikikitap");
if(defined("MEKAN"))
{
    echo "Tanımlı"; // Tanımlı çıktılar
}
?>
<?php
define("MEKAN", "Vikikitap");
if(defined("MEKAN1"))
{
    echo "Tanımlı"; // işleme konmaz çünkü MEKAN1 isimli sabit tanımlı değildir
}
?>

defined() işlevi, const ile tanımlanan sabitlerle de kullanılabilir.

<?php
const MEKAN = "Vikikitap";
if(defined("MEKAN"))
{
    echo MEKAN; // Vikikitap çıktılar
}
?>