PHP'nin yerleşik fonksiyonlarını kullanmak kodu kısaltabilir; ancak fonksiyonun dönüş değerini yanlış yorumlamak yeni hata üretir. Özellikle doğrulama ile temizlemeyi, basit metin bölmeyle CSV okumayı ayırmak gerekir. Aşağıdaki örnekler PHP 8.x sözdizimini kullanır.
array_map ile her öğeyi dönüştürme
<?php
$sayilar = [1, 2, 3];
$kareler = array_map(fn($s) => $s * $s, $sayilar);
echo json_encode($kareler); // [1,4,9]
array_map yeni bir dizi üretir; eleman elemek için tasarlanmış değildir. Callback'in null döndürmesi o konumu otomatik olarak kaldırmaz. Birden fazla dizi geçirirken uzunluk ve anahtar davranışını ayrıca değerlendirin. Basit bir döngü daha okunaklıysa sırf kısa olduğu için callback tercih etmek gerekmez.
filter_var: false ile sıfırı ayırın
<?php
$deger = filter_var('0', FILTER_VALIDATE_INT);
if ($deger === false) {
echo 'Geçersiz';
} else {
echo 'Sayı: ' . $deger; // Sayı: 0
}
Gevşek bir if (!$deger) kontrolü geçerli sıfırı hatayla karıştırabilir. E-posta için FILTER_VALIDATE_EMAIL biçim denetimi yapar; sahiplik doğrulaması yapmaz. FILTER_SANITIZE seçenekleri girdiyi değiştirebilir; temizlenmiş değer, kullanıcının gerçekten gönderdiği değerle aynı olmayabilir.
trim her alana zorunlu uygulanmaz
<?php
$girdi = " Merhaba ";
echo trim($girdi); // Merhaba
Varsayılan trim, baştaki ve sondaki belirli boşluk/kontrol karakterlerini kaldırır; bütün Unicode boşluklarını kapsamaz. İç boşluklara dokunmaz. Parola veya boşluğun anlam taşıdığı metin alanında sessizce değişiklik yapmak yerine alanın kuralına karar verin. İstekten gelen değerin string olduğunu doğrulamadan trim çağırmayın.
explode basit ayıraçlar içindir
<?php
$etiketler = explode(',', 'php,mysql,linux');
echo json_encode($etiketler); // ["php","mysql","linux"]
$satir = '"Ankara, merkez",42';
$alanlar = str_getcsv($satir, ',', '"', '');
echo json_encode($alanlar); // ["Ankara, merkez","42"]
Tırnak içinde virgül içeren CSV satırını explode ile bölmek alanları parçalar. CSV için ilgili ayrıştırıcıyı kullanın; dosya akışı okurken fgetcsv uygun olabilir. Örnekte escape parametresinin açıkça boş verilmesi davranışı belirgin kılar.
Kendi test listenize '0', boş string, yalnızca boşluk, beklenmeyen dizi ve içinde ayıraç bulunan metin ekleyin. Doğru değerlerin kabul edilmesi kadar yanlış türlerin kontrollü reddedilmesi de önemlidir.
Başvuru: PHP filter_var, trim ve str_getcsv belgeleri.