yoklateknik mülakat

Backend Php Stdlib Http Mülakat Soruları

75 doğrulanmış Backend Php Stdlib Http mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Php Stdlib HttpZorluk 2
$prices = ['apple' => 2, 'pear' => 3];
$doubled = array_map(fn($p) => $p * 2, $prices);
print_r($doubled);

Ne yazdırılır?
  • aArray ( [0] => 4 [1] => 6 ) — array_map anahtarları her zaman 0'dan yeniden numaralandırır
  • bArray ( [apple] => 2 [pear] => 3 ) — array_map arrow function alamadığı için closure yok sayılır
  • cArray ( [apple] => 4 [pear] => 6 ) — orijinal anahtarlar korunur, her değer ikiye katlanır
  • dFatal error verir, çünkü array_map tek bir girdi dizisiyle birlikte kullanılamaz
Açıklama:array_map(), tam olarak bir girdi dizisi verildiğinde orijinal dizinin anahtarlarını korur — sonucu sayısal olarak yeniden indekslemesi yalnızca birden fazla dizi verildiğinde olur. Burada her değer ikiye katlanır (22=4, 32=6) ve 'apple'/'pear' string anahtarları yeni değerlere bağlı kalır.
Php Stdlib HttpZorluk 2
$a = [1, 2, 3];
$b = [10, 20, 30];
$result = array_map(null, $a, $b);
print_r($result[1]);

Ne yazdırılır?
  • aArray ( [0] => 2 [1] => 20 )
  • b22 — callback null olduğunda array_map(null, ...) karşılık gelen elemanları toplar
  • c2 — yalnızca ilk dizinin o pozisyondaki elemanı tutulur
  • dArray ( [0] => 1 [1] => 10 [2] => 2 [3] => 20 ) — tüm elemanlar tek bir dizide düzleştirilir
Açıklama:Birden fazla dizi ile callback olarak null vermek, array_map()'in onları eşleştirmesini (zip) sağlar: her çıktı elemanı, o indeksteki her girdi dizisinin karşılık gelen elemanını içeren bir dizidir. $result[1], $a[1]=2 ile $b[1]=20'yi eşleştirir, [2, 20] verir. Sonuç, girdi dizilerinin orijinal anahtarlarına bakılmaksızın sayısal olarak yeniden indekslenir.
Php Stdlib HttpZorluk 2
Bir junior geliştirici, veritabanına kaydetmeden önce "boşa yakın" değerleri elemek için karışık bir diziyi filtreliyor:
$values = [0 => 'x', 1 => 0, 2 => '', 3 => 'y', 4 => null, 5 => '0'];
$filtered = array_filter($values);
print_r($filtered);

Ne yazdırılır?
  • aArray ( [0] => 'x' [1] => 0 [2] => '' [3] => 'y' [4] => null [5] => '0' ) — callback'siz array_filter() diziyi değiştirmeden döndürür
  • bArray ( [0] => 'x' [1] => 'y' ) — ayakta kalan değerler 0'dan yeniden numaralandırılır
  • cArray ( ) — açık bir callback verilmediğinde array_filter() her zaman boş dizi döndürür
  • dArray ( [0] => x [3] => y ) — falsy değerler (0, '', null, '0') elenir ve ayakta kalanların orijinal anahtarları korunur
Açıklama:Callback verilmediğinde array_filter(), her değere boolean cast uygular: 0, '', null ve özel '0' string'i PHP'de falsy'dir ve elenir; 'x' ve 'y' ise truthy olduğu için kalır. Önemli olan, array_filter()'ın anahtarları asla yeniden numaralandırmamasıdır — ayakta kalan elemanlar orijinal dizi anahtarlarını (burada 0 ve 3) korur, bu yüzden temiz 0-tabanlı bir liste gerekiyorsa genellikle ardından bir foreach ya da array_values() çağrısı gerekir.
Php Stdlib HttpZorluk 2
Bir dizide değeri açıkça null olarak ayarlanmış bir anahtar var: $data = ['name' => 'Ada', 'age' => null];. Bu durumda isset($data['age']) ile array_key_exists('age', $data) arasındaki temel fark nedir?
  • aHiçbir fark yok — anahtar mevcut olduğu sürece ikisi de, değeri null olsa bile true döndürür
  • bisset() false döndürür çünkü değerin null olmamasını da şart koşar, array_key_exists() ise true döndürür çünkü yalnızca anahtarın dizide var olup olmadığını kontrol eder
  • carray_key_exists() null bir değer için false döndürür, isset() ise true döndürür, çünkü isset() yalnızca anahtar varlığını kontrol eder ve değeri tamamen yok sayar
  • dİkisi de false döndürür, çünkü PHP değeri null olan bir anahtarı sanki dizide hiç ayarlanmamış gibi ele alır
Açıklama:isset(), aynı anda iki şeyi kontrol eder: anahtarın var olması VE değerinin null olmaması — bu yüzden açıkça null tutan bir anahtar için isset() false döndürür. array_key_exists() ise yalnızca anahtarın dizide var olup olmadığını kontrol eder, orada hangi değer (null dahil) saklandığından bağımsız olarak, bu yüzden true döndürür. Bu ayrım, bir config ya da opsiyonel bir alan meşru şekilde null tutabildiğinde ve kod "eksik" ile "var ama null" durumlarını ayırt etmesi gerektiğinde önem kazanır.
Php Stdlib HttpZorluk 1
$total = array_reduce([1, 2, 3, 4], fn($carry, $n) => $carry + $n, 0);
echo $total;

Ne yazdırılır?
  • a10
  • b0
  • c4
  • d24
Açıklama:array_reduce(), diziyi soldan sağa gezer, callback'i çalışan $carry (başlangıç değeri 0 ile başlar) ve her eleman $n ile çağırır, her seferinde $carry'yi callback'in dönüş değeriyle değiştirir: 0+1=1, 1+2=3, 3+3=6, 6+4=10. Son carry olan 10 döndürülür.
Php Stdlib HttpZorluk 3
$result = array_reduce([], fn($carry, $n) => $carry + $n);
var_dump($result);

Ne yazdırılır?
  • aint(0)
  • bbool(false)
  • cNULL
  • darray_reduce()'un açık bir initial value gerektirdiği için fatal error fırlatır
Açıklama:array_reduce()'un üçüncü parametresi (başlangıç carry'si), belirtilmediğinde varsayılan olarak null'dur. Girdi dizisi boş olduğu için callback hiç çağrılmaz ve fonksiyon başlangıç değerini değiştirmeden döndürür — burada 0 değil null. Biri, belirtilmemiş bir initial value'nun sayısal bir toplam için 0 gibi davrandığını varsaydığında bu yaygın bir bug kaynağıdır.

3300 soruluk Backend bankasında kendini sına.

Mülakata başla