int
Bir int türünde değer şu kümeden bir tamsayıdır:
ℤ = {..., -2, -1, 0, 1, 2, ...}.
&reftitle.seealso;
Kayan noktalı sayılarKeyfi ondalık hassasiyet / BCMathKeyfi uzunlukta tamsayı / GMPSözdizimiint türünde değerler onluk, sekizlik veya onaltılık
tabanda belirtilebilirler.
değil işleci
negatif bir int belirtmekte kullanılabilir.
Sekizlik gösterimde sayıların önüne 0 (sıfır),
onaltılık gösterimde 0x ve ikil gösterimde
0b getirilir.
PHP 8.1.0 ve sonrasında sekizlik gösterim ayrıca, 0o
veya 0O ile öncelenmiş de olabilir.
PHP 7.4.0'dan itibaren, tamsayı değişmezleri, değişmez değerlerin daha
iyi okunabilirliği için rakamlar arasında alt çizgi (_)
içerebilir. Bu alt çizgiler PHP'nin tarayıcısı tarafından kaldırılır.
- Tamsayı değişmezler
]]>
PHP 8.1.0'dan itibaren, biçimsel olarak, int değişmezlerinin yapısı
(evvelce, 0o ve 0O sekizlik
öneklerine ve PHP 7.4.0'dan önce alt çizgilere izin verilmezdi):
Bir int türün genişliği platforma göre değişir. 32 bitlik
sistemlerde azami değer 2 milyon civarında iken 64 bitlik sistemlerde 9E18
civarındadır. PHP işaretsiz tamsayıları (C'deki unsigned) desteklemez.
int türün genişliği PHP_INT_SIZE
sabitine, olası en büyük değeri PHP_INT_MAX
sabitine ve en küçük değeri ise PHP_INT_MIN
sabitine atanmıştır.
Tamsayılarda taşma
PHP, int türünde bir değerin bellekte int türüne
ayrılan genişliğe sığmadığını saptarsa float türünde bir
değer olarak ele alır ve bu durum yapılan bir işlem sırasında ortaya
çıkmışsa işlemden dönen değer float türünde olur.
- Tamsayı taşması
]]>
Tamsayı Bölme
PHP'de sonucun int türünde elde edileceği bir bölme
işleci mevcut değildir, bunu sağlamak için intdiv
işlevini kullanın. 1/2 işleminin sonucu
float türünde 0.5 değeridir. Bu değer
(int) ile çarpıtılarak sıfıra yuvarlamak suretiyle bir
tamsayıya dönüştürülebilirse de round işlevini
kullanırsanız dönüşümün nasıl yapılacağını kendiniz belirleyebilirsiniz.
]]>
int türüne dönüşüm
Bir değeri doğrudan int türüne dönüştürmek için
(int) veya (integer) çarpıtmasını
kullanabilirsiniz. Ancak, çoğu durumda türü çarpıtmak gerekmez, bir
int değer gerektiren bir işlev veya denetim yapısı, değeri
kendiliğinden int türüne dönüştürecektir. Ayrıca, bir değer
int türüne intval işleviyle de
dönüştürülebilir.
Bir resource bir inte sayıya dönüştürülürse,
sonuç, PHP tarafından çalışma anında özkaynağa atanan eşsiz özkaynak
numarası olacaktır.
Ayrıca, Tür Dönüşümü
bölümüne de bakınız.
bool
türünden dönüşüm
&false;, 0'a (sıfır); &true;, 1'e
(bir) dönüştürülür.
float
türünden dönüşümfloat türünden int türüne dönüşümde sayı
sıfıra yaklaştırılarak yuvarlanır. PHP 8.1.0 ve
sonrasında, örtük dönüşümdeki hassasiyet kaybından dolayı işlemin
önerilmediğini belirten bir uyarı çıktılanmaktadır.
]]>
Dönüşüm sonucu int türüne ayrılan genişliğe (normalde
32 bitlik sistemlerde +/- 2.15e+9 = 2^31,
64 bitlik sistemlerde ise +/- 9.22e+18 = 2^63)
sığmıyorsa, float türün hassasiyeti int türünde
tam bir sonuç vermeyeceğinden sonuç tanımsızdır. Bu durumda ne bir uyarı
ne de bir bilgi verilir!
int türüne çarpıtıldığında NaN,
Inf ve -Inf daima sıfır
olacaktır.
Ondalık kısmı int türüne asla dönüştürmeyin, yoksa
beklenmedik sonuçlar elde edebilirsiniz.
]]>
Ayrıca bakınız: Kayan noktalı
sayılarda hassasiyet uyarısı.
string türünden dönüşüm
Dizge sayısal
veya öncü sayısal ise, karşılık gelen tamsayı değerine çözümlenir,
aksi takdirde sıfıra (0) dönüştürülür.
NULL türünden dönüşüm
&null; daima sıfıra dönüşür (0).
Diğer türlerden dönüşüm
Diğer türlerden int türüne dönüşümün nasıl davranacağı
henüz kesin olarak tanımlanmamıştır. Gözlemlediğiniz bir davranışın
doğruluğuna güvenmeyiniz, ileride bu davranış hiçbir bilgi verilmeden
değiştirilebilir.