Tür Karıştırma ve Tür Dönüştürme
PHP'nin türler arasında otomatik olarak nasıl dönüştürme yaptığını ve elle nasıl tür dönüştürüleceğini öğrenin.
Tür Karıştırma ve Tür Dönüştürme, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Tür Jonglörlüğü Nedir?
Tür jonglörlüğü, bir işleç veya işlev farklı bir tür gerektirdiğinde PHP'nin bir değerin türünü otomatik olarak dönüştürmesi anlamına gelir.
Bu kullanışlıdır, ancak kuralları anlamazsanız fark edilmesi zor hatalara yol açabilir.
Aritmetikte Tür Dönüştürme
PHP, aritmetik bağlamda kullanıldıklarında metinleri sayılara dönüştürür:
<?php
echo '5' + 3; // 8 — string '5' becomes int 5
echo '5.5' + 1.5; // 7 — string '5.5' becomes float
echo '5 cats' + 1; // 6 — leading numeric part used, rest ignored
echo 'cats' + 1; // 1 — non-numeric string becomes 0Esnek Karşılaştırma ==
== işleci, tür dönüştürme sonrasında değerleri karşılaştırır; bu da şaşırtıcı sonuçlar üretebilir:
<?php
var_dump(0 == 'a'); // true in PHP 7 (both become 0)
// false in PHP 8 (improved rules!)
var_dump('' == false); // true
var_dump('1' == true); // true
var_dump(null == false); // trueKatı Karşılaştırma ===
Hem değeri hem de türü karşılaştırmak için her zaman === kullanın; tür dönüştürme gerçekleşmez:
<?php
var_dump(1 === '1'); // false — different types
var_dump(1 === 1); // true
var_dump(null === false); // false
var_dump(0 === false); // false
// Rule of thumb: prefer === unless you explicitly need type coercionAçık Tür Dönüştürme
Bir değeri, başına (type) ekleyerek belirli bir türe dönüştürün:
<?php
$str = '42.7';
$int = (int) $str; // 42
$float = (float) $str; // 42.7
$bool = (bool) $str; // true
$arr = (array) $str; // ['42.7']
echo $int; // 42
echo $float; // 42.7settype() İşlevi
settype(), bir değişkenin türünü yerinde değiştirir ve doğru/yanlış değeri döndürür:
<?php
$value = '123';
settype($value, 'integer');
var_dump($value); // int(123)
// Alternative: intval(), floatval(), strval() functions
$n = intval('0xFF', 16); // 255 — parse hex stringMetinden Sayıya Dönüşümde Özel Durumlar
PHP'nin metinleri sayılara dönüştürmesindeki temel kurallar:
- Baştaki boşluklar göz ardı edilir:
' 42 '→ 42 - Sayısal olmayan ön ek:
'php8'→ 0 (PHP 8 bildirimi) - Bilimsel gösterim:
'1e3'→ 1000.0 - Onaltılık metinler:
'0x1A', PHP 7 ve sonraki sürümlerde int türüne otomatik olarak dönüştürülmez
Mantıksal Değere Dönüştürme Kuralları
Şu değerler false değerine dönüştürülür; diğer tüm değerler true olur:
<?php
$falsy = [false, 0, 0.0, '', '0', [], null];
foreach ($falsy as $v) {
var_dump((bool) $v); // all bool(false)
}
// Careful:
var_dump((bool) '0'); // false — the STRING '0' is falsy!
var_dump((bool) '00'); // true — only exactly '0' is falsyintval() ile Taban Kullanımı
intval(), sayısal metinleri ayrıştırmak için isteğe bağlı bir taban parametresini kabul eder:
<?php
echo intval('0b1010', 2); // 10 — binary
echo intval('077', 8); // 63 — octal
echo intval('1F', 16); // 31 — hexadecimal
echo intval('42'); // 42 — decimal (default base 10)PHP 8'de Geliştirilmiş Tür Dönüştürme
PHP 8, önceki sürümlerdeki bazı tutarsız tür dönüştürme davranışlarını düzeltti:
0 == 'foo'artıkfalseolur (PHP 7'detrueidi)- Sayılar sayısal olmayan metinlerle karşılaştırıldığında metin artık 0'a zorla dönüştürülmez
- Bu, PHP 8'i daha güvenli hâle getirir; ancak eski davranışa dayanan eski kodu bozabilir
Tür Dönüştürme Hatalarından Kaçınma
Tür dönüştürmeyle ilgili sürprizlerden kaçınmak için en iyi uygulamalar:
<?php
declare(strict_types=1); // enforce types at function boundaries
// Always use === for comparisons
if ($status === 'active') { /* safe */ }
// Cast explicitly before arithmetic
$total = (float) $_POST['price'] * (int) $_POST['qty'];
// Validate with filter_var
$age = filter_var($_POST['age'], FILTER_VALIDATE_INT);
if ($age === false) { /* invalid input */ }Hızlı Kontrol
(int) '42abc' ifadesi PHP'de hangi sonucu verir?
Özet: Tür Dönüştürme
PHP'nin tür işleme biçimi hakkında öğrendikleriniz:
- PHP, işlemler sırasında türleri otomatik olarak dönüştürür; buna tür dönüştürme denir
==, tür dönüştürmeden sonra karşılaştırır;===ise katıdır (tür + değer)(int),(float),(string),(bool)ile açıkça dönüştürün- İşlevsel alternatifler olarak
intval(),floatval(),strval()kullanın - PHP 8, bazı özel tür dönüştürme durumlarını iyileştirdi
- Kodunuzdaki sürprizleri azaltmak için
strict_types=1etkinleştirin
Sıkça Sorulan Sorular
“Tür Karıştırma ve Tür Dönüştürme” dersi ücretsiz mi?
Evet — “Tür Karıştırma ve Tür Dönüştürme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Tür Karıştırma ve Tür Dönüştürme” dersinde ne öğreneceğim?
PHP'nin türler arasında otomatik olarak nasıl dönüştürme yaptığını ve elle nasıl tür dönüştürüleceğini öğrenin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Tür Karıştırma ve Tür Dönüştürme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- PHP'de Değişken Tanımlama
- PHP Veri Türlerine Genel Bakış
- Echo ve Print ile Çıktı
- Tür Karıştırma ve Tür Dönüştürme