yoklateknik mülakat

Backend Php Generics Interfaces Mülakat Soruları

75 doğrulanmış Backend Php Generics Interfaces 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 Generics InterfacesZorluk 1
interface Greetable {
    public function greet(): string;
}

class Person implements Greetable {
}

Bu kod yüklendiğinde ne olur?
  • aHiçbir şey; PHP'de interface'ler runtime'da göz ardı edilen opsiyonel ipuçlarıdır.
  • bPerson gerekli greet() metodunu implemente etmediği için fatal error oluşur.
  • cPerson sorunsuz derlenir; greet() boş gövdeyle otomatik üretilir.
  • dUyarı basılır ama sınıf yine de normal şekilde instantiate edilebilir.
Açıklama:Bir interface implemente eden sınıf, interface'in bildirdiği tüm metotları tanımlamalı ya da kendisi abstract ilan edilmelidir. Person, greet()'i sağlamadan Greetable'ı implemente ettiği için PHP, sınıf tanımlanırken fatal error fırlatır ("Class Person contains 1 abstract method and must be declared abstract or implement the remaining methods").
Php Generics InterfacesZorluk 1
PHP'de bir abstract class doğrudan new ile instantiate edilebilir mi?
  • aEvet, public bir constructor'ı olduğu sürece.
  • bHayır, abstract bir sınıfa new uygulamak her zaman fatal error fırlatır.
  • cEvet, ama sadece tüm metotlarının implementasyonu varsa.
  • dHayır, ama reflection ile herhangi bir kısıtlama olmadan dinamik olarak instantiate edilebilir.
Açıklama:Abstract class'lar genişletilmek üzere tasarlanmış tamamlanmamış taslaklardır. PHP bunları doğrudan instantiate etmeyi yasaklar ve constructor'ın görünürlüğünden ya da her metodun gövdesi olup olmadığından bağımsız olarak fatal error fırlatır ("Cannot instantiate abstract class").
Php Generics InterfacesZorluk 1
Sade bir PHP interface'i aşağıdakilerden hangisini bildirebilir?
  • aMetot imzalarını ve tiplenmiş instance property'lerini.
  • bVarsayılan implementasyonu olan private metotları.
  • cImplemente eden tüm sınıflar tarafından paylaşılan static property'leri.
  • dYalnızca metot imzalarını ve sınıf sabitlerini.
Açıklama:Interface'ler yalnızca metot imzalarını (gövdesiz) ve sabitleri bildirebilir; instance ya da static property bildiremezler. Implementasyon durumu her zaman interface'i implemente eden sınıflarda yaşar, interface'in kendisinde değil.
Php Generics InterfacesZorluk 1
Uygulamandaki bir Service sınıfına Logger trait'ini ekliyorsun:
trait Logger {
    public function log(string $msg): void {
        echo "[LOG] $msg";
    }
}

class Service {
    use Logger;
}

(new Service())->log("ready");

Ne basılır?
  • aHiçbir şey; trait'ler extends olmadan sınıf içinde kullanılamaz.
  • bFatal error: call to undefined method log().
  • cLOG ready (köşeli parantez olmadan).
  • d[LOG] ready
Açıklama:use Logger;, trait'in metot gövdelerini sanki doğrudan sınıfın içinde yazılmış gibi Service'e kopyalar. Bu yüzden bir Service instance'ında log() çağrısı trait'in implementasyonunu çalıştırır ve "[LOG] ready" basar.
Php Generics InterfacesZorluk 1
"Pure" bir PHP enum'unu "backed" bir enum'dan ayıran şey nedir?
  • aPure enum yalnızca bir case'e sahip olabilir; backed enum birçok case'e sahip olabilir.
  • bPure enum class ile, backed enum enum ile bildirilir.
  • cPure enum interface implemente edemez; sadece backed enum'lar edebilir.
  • dPure enum'un case'lerine bağlı bir skaler değer yoktur; backed enum'un her case'i bir int ya da string'e eşlenir.
Açıklama:enum Suit { case Hearts; } bir pure enum tanımlar — case'ler sadece isimlendirilmiş singleton instance'lardır. enum Suit: string { case Hearts = 'H'; } ise backed bir enum tanımlar; burada her case ek olarak ->value üzerinden erişilebilen bir skaler değer taşır. Her iki tür de interface implemente edebilir.
Php Generics InterfacesZorluk 1
class Point {
    public function __construct(
        public readonly int $x,
        public readonly int $y,
    ) {}
}

$p = new Point(1, 2);
echo $p->x;

Ne basılır?
  • a2
  • bFatal error: readonly property okunamaz.
  • cHiçbir şey; constructor promotion readonly ile çalışmaz.
  • d1
Açıklama:Constructor property promotion, readonly ile birleştiğinde $x ve $y'yi tek adımda bildirir ve başlatır. Başlatıldıktan sonra readonly bir property'yi okumak normal bir property gibi çalışır; bu yüzden $p->x 1 basar.

3300 soruluk Backend bankasında kendini sına.

Mülakata başla