0Pricing
PHP Academy · Ders

Statik Özellikler ve Metotlar

Statik üyeleri kullanın ve bir örnek oluşturmadan ne zaman çağrılabileceklerini anlayın.

Statik Özellikler ve Metotlar, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. 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.

Giriş: Statik Özellikler ve Yöntemler

Statik üyeler herhangi bir örneğe değil, sınıfın kendisine aittir. Bunlara ClassName::member ile veya sınıf içinde self:: kullanarak erişin. Bu üyeler tüm örnekler arasında paylaşılır.

Temel Kavramlar

Statik Özellikler ve Yöntemlerle ilgili temel kavramlar:

  • static anahtar sözcüğüyle bildirilir
  • :: ile erişilir (kapsam çözümleme işleci)
  • Sınıf içinde self::, dışarıdan ClassName:: kullanılır
  • static:: ile geç statik bağlama yapılır

Statik Özellik

Örnek:

<?php
class AppConfig {
    private static array $settings = [];

    public static function set(string $key, mixed $val): void {
        self::$settings[$key] = $val;
    }

    public static function get(string $key, mixed $default = null): mixed {
        return self::$settings[$key] ?? $default;
    }
}

AppConfig::set('debug', true);
echo AppConfig::get('debug') ? 'debug on' : 'debug off';

Statik Yöntem

Devam:

<?php
class MathHelper {
    public static function clamp(float $v, float $min, float $max): float {
        return max($min, min($max, $v));
    }

    public static function lerp(float $a, float $b, float $t): float {
        return $a + ($b - $a) * $t;
    }
}

echo MathHelper::clamp(150, 0, 100); // 100
echo MathHelper::lerp(0, 100, 0.5);  // 50

Tekil Nesne Deseni

Uygulama:

<?php
class Database {
    private static ?Database $instance = null;

    private function __construct() {
        echo 'Connected to DB';
    }

    public static function getInstance(): self {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

$db1 = Database::getInstance();  // 'Connected to DB'
$db2 = Database::getInstance();  // no output — same instance
echo ($db1 === $db2) ? 'same' : 'different'; // same

Statik Sayaç

Daha derinlemesine:

<?php
class EventEmitter {
    private static int $instanceCount = 0;

    public function __construct() {
        self::$instanceCount++;
    }

    public static function count(): int {
        return self::$instanceCount;
    }
}

new EventEmitter();
new EventEmitter();
new EventEmitter();
echo EventEmitter::count();  // 3

Geç Statik Bağlama

İleri düzey kullanım:

<?php
class ParentClass {
    public static function create(): static {
        return new static();  // resolves to calling subclass
    }

    public function getClass(): string {
        return static::class;  // late static binding
    }
}

class ChildClass extends ParentClass {}

$obj = ChildClass::create();
echo $obj->getClass();  // ChildClass

Statik Fabrika

Gerçek dünyadan bir desen:

<?php
class Response {
    private function __construct(
        private int   $status,
        private mixed $body
    ) {}

    public static function ok(mixed $data): self {
        return new self(200, $data);
    }

    public static function notFound(): self {
        return new self(404, ['error' => 'Not Found']);
    }

    public function toJson(): string {
        return json_encode(['status' => $this->status, 'body' => $this->body]);
    }
}

echo Response::ok(['users' => []])->toJson();

Statik ve Örnek Kullanımının Dengesi

En iyi uygulamalar:

<?php
// Static: no object needed, but harder to test/mock
class Validator {
    public static function isEmail(string $s): bool {
        return (bool) filter_var($s, FILTER_VALIDATE_EMAIL);
    }
}

// Instance: injectable dependency, testable
class ValidatorService {
    public function isEmail(string $s): bool {
        return (bool) filter_var($s, FILTER_VALIDATE_EMAIL);
    }
}
// Prefer instance classes in larger applications

Uygulamalı Desen

Statik Özellikler ve Yöntemler için pratik bir desen kullanarak tüm konuları bir araya getirelim.

Yaygın Hatalar

Statik Özellikler ve Yöntemlerle ilgili şu yaygın hatalardan kaçının:

  • Statik üyeler tüm örnekler arasında paylaşılır
  • Kalıtım alabilen sınıflarda self:: yerine geç statik bağlamayı (static::) tercih edin
  • Tekil nesneler yaygın, ancak bazen gereğinden fazla kullanılan bir desendir
  • Statik yöntemleri birim testlerinde taklit etmek daha zordur

Hızlı Kontrol

Kalıtımı dikkate alarak (geç statik bağlama) sınıf içindeki statik bir özelliğe hangi anahtar sözcükle erişilir?

Tekrar: Statik Özellikler ve Yöntemler

Statik Özellikler ve Yöntemler konusunu tamamladınız. Hatırlamanız gereken temel noktalar:

  • Statik üyeler tüm örnekler arasında paylaşılır
  • Kalıtım alabilen sınıflarda self:: yerine geç statik bağlamayı (static::) tercih edin
  • Tekil nesneler yaygın, ancak bazen gereğinden fazla kullanılan bir desendir
  • Statik yöntemleri birim testlerinde taklit etmek daha zordur

Sıkça Sorulan Sorular

“Statik Özellikler ve Metotlar” dersi ücretsiz mi?

Evet — “Statik Özellikler ve Metotlar” 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.

“Statik Özellikler ve Metotlar” dersinde ne öğreneceğim?

Statik üyeleri kullanın ve bir örnek oluşturmadan ne zaman çağrılabileceklerini anlayın. 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 3. dersidir.

“Statik Özellikler ve Metotlar” 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

  1. Sınıflar, Özellikler ve Metotlar
  2. Yapıcılar ve Yıkıcılar
  3. Statik Özellikler ve Metotlar
  4. Sihirli Metotlara Genel Bakış
← PHP Academy Sayfasına Dön