Temeller
PHP'de değişkenler dolar işaretini takip eden bir değişken adı ile
gösterilir. Değişken adı büyük-küçük harf duyarlıdır.
Değişken isimleri PHP'deki diğer yaftalarla aynı kurallara tabidir.
Geçerli bir değişken ismi bir harf veya alt çizgi imi ile başlar,
herhangi sayıda harf, sayı veya alt çizgi iminden oluşur. Düzenli ifade
olarak, şu şekilde ifade edilebilir:
^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
Bilginize:
Burada kastedilen harf a-z veya A-Z arasındaki ASCII harfler ve 128 ile
255 (0x80-0xff
) arasındaki baytlardır.
Bilginize:
$this
atama yapılamayan özel bir değişkendir.
PHP 7.1.0'dan önce dolaylı atama (örn. değişken değişkenler
kullanılarak) mümkündü.
Değişkenlerle ilgili işlevler hakkında bilgi için,
Değişkenlerle ilgili işlevler belgesine
bakınız.
Öntanımlı olarak, değişkenler her zaman değerleriyle atanır. Başka bir
deyişle, bir değişkene bir ifade atandığında özgün ifade bütün değeriyle
hedef değişkene kopyalanır. Bu demektir ki, örneğin, bir değişkenin
değerini başka bir değişkene atadıktan sonra, değişkenlerden birisinin
değerini değiştirmenin diğeri üzerinde etkisi olmayacaktır. Bu çeşit
atama hakkında daha fazla bilgi için,
İfadeler bölümüne bakınız.
PHP değişkenlere değer atamak için başka bir yol daha sunar: Gönderimli atama. Yani, yeni
değişken sadece asıl değişkene gönderim yapar (diğer bir deyişle, "onun
takma adı olur" veya "onu gösterir") Gönderim yapılan değişkendeki
değişiklikler aslını da etkiler, tersi de geçerlidir.
Gönderimli atama için, gönderim yapılacak (daha önce değer atanmış)
değişkenin başına ve imi (&) ekleyin. Örneğin, aşağıdaki kod parçası
iki kez 'Benim adım Mustafa
' yazar:
Dikkat edilmesi gereken önemli bir şey de sadece isimli değişkenlerin
gönderimle atanabileceğidir.
PHP'de değişkenleri ilklendirmek gerekmez ancak baştan bir değer atamak
oldukça iyi bir alışkanlıktır. İlklendirilmeyen değişkenlerin
kullanıldıkları bağlamda türlerine bağlı olarak öntanımlı değerleri
vardır; öntanımlı değer boolean için false
,
integer ve float için sıfır,
string için boş metin (örnekte echo da
kullanıldı), array için ise boş bir dizidir.
Örnek 1 - İlklendirilmemiş değişkenlerin öntanımlı değerleri
<?php
// Herhangi bir bağlamda tanımlanmamış veya
// gönderim yapılmamış değişken; NULL sonuç verir.
var_dump($tanımsız_değişken);
// Mantıksal değer kullanımı; 'false' çıktısı verir
// (Bu sözdizimi için üç terimli işlecine bakınız)
echo $tanımsız_mantıksallık ? "true\n" : "false\n";
// Dizge kullanımı; çıktısı: 'string(3) "abc"'
$tanımsız_metin .= 'abc';
var_dump($tanımsız_metin);
// Tamsayı kullanımı; 'int(25)' çıktılar.
$tanımsız_tamsayı += 25; // 0 + 25 => 25
var_dump($tanımsız_tamsayı);
// Gerçek sayı kullanımı; 'float(1.25)' çıktılar.
$tanımsız_sayı += 1.25;
var_dump($tanımsız_sayı);
// Dizi kullanımı; çıktısı: array(1) { [3]=> string(3) "def" }
$tanımsız_dizi[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($tanımsız_dizi);
// Nesne kullanımı; yeni stdClass nesnesi oluşturur
// (Öntanımlı sınıflar belgesine bakınız:
// http://www.php.net/manual/tr/reserved.classes.php)
// Çıktısı: object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
$tanımsız_nesne->foo = 'bar';
var_dump($tanımsız_nesne);
?>
İlklendirilmemiş bir değişkenin öntanımlı değerine güvenmek, içinde aynı
değişken isminin kullanıldığı bir dosyayı betiğe dahil ettiğinizde sorun
çıkarır. İlklendirilmemiş değişken kullanımı
E_WARNING
(PHP 8.0.0 öncesinde,
E_NOTICE
) seviyesinde hata oluşturur, ancak
ilklendirilmemiş bir diziye eleman eklenmesi halinde hata oluşmaz.
isset() dil oluşumu bir değişkenin ilklendirilip
ilklendirilmediğini öğrenmek için
kullanılabilir.