Php 8 Access Modifiers

Php 8 Access Modifiers

PHP 8'de Erişim Belirleyicileri (Access Modifiers), sınıf içindeki özelliklerin ve metotların erişim düzeylerini kontrol etmek için kullanılır. Bu belirleyiciler, nesne yönelimli programlamada veri kapsülleme ve güvenlik sağlamak için kritik öneme sahiptir. PHP'de üç ana erişim belirleyicisi bulunmaktadır: public, protected, ve private. Aşağıda bu erişim belirleyicilerinin detaylarını ve kullanım örneklerini bulabilirsiniz.

1. Public

  • Tanım: public erişim belirleyicisi ile tanımlanan özellikler ve metotlar, sınıfın dışından ve içinden herhangi bir yerden erişilebilir.
  • Kullanım: Genellikle sınıfın genel özellikleri veya işlevleri için kullanılır.

Örnek:

class User { public $username; // Public özellik public function greet( ) { // Public metot return "Hello, " . $this->username; } } $user = new User(); $user->username = "Alice"; // Her yerden erişilebilir echo $user->greet(); // "Hello, Alice"

2. Protected

  • Tanım: protected erişim belirleyicisi ile tanımlanan özellikler ve metotlar, yalnızca sınıfın içinden ve bu sınıftan türetilmiş (extend edilmiş) alt sınıflardan erişilebilir. Sınıfın dışındaki kodlar bu özelliklere erişemez.
  • Kullanım: Alt sınıflar tarafından kullanılacak olan, ancak sınıfın dışına kapalı kalması gereken özellikler veya metotlar için kullanılır.

Örnek:

class Animal { protected $name; // Protected özellik public function setName( $name ) { $this->name = $name; } } class Dog extends Animal { public function bark( ) { return "Woof! My name is " . $this->name; // Protected özelliğe erişim } } $dog = new Dog(); $dog->setName("Buddy"); // Public metot ile erişim echo $dog->bark(); // "Woof! My name is Buddy"

3. Private

  • Tanım: private erişim belirleyicisi ile tanımlanan özellikler ve metotlar, yalnızca tanımlandıkları sınıf içinde erişilebilir. Alt sınıflar veya dış sınıflar bu özelliklere erişemez.
  • Kullanım: Sınıfın iç mantığını gizlemek ve veri bütünlüğünü sağlamak için kullanılır.

Örnek:

class BankAccount { private $balance; // Private özellik public function __construct( $initialBalance ) { $this->balance = $initialBalance; // Private özelliğe erişim } public function deposit( $amount ) { $this->balance += $amount; // Private özelliğe erişim } public function getBalance( ) { return $this->balance; // Private özelliğe erişim } } $account = new BankAccount(100); $account->deposit(50); echo $account->getBalance(); // 150 // echo $account->balance; // Hata! Private özellik doğrudan erişilemez.

4. Erişim Belirleyicileri ile Kapsülleme

Erişim belirleyicileri, veri kapsülleme (encapsulation) kavramının temelini oluşturur. Kapsülleme, bir sınıfın verilerini ve metodlarını koruyarak, sınıfın iç yapısının dışarıdan gizlenmesini sağlar. Bu, veri bütünlüğünü korumak ve sınıfın kullanımını daha güvenli hale getirmek için önemlidir.

5. Erişim Belirleyicileri ve Miras

Kalıtım (inheritance) ile erişim belirleyicilerinin nasıl çalıştığını anlamak önemlidir:

  • Public: Hem üst sınıftan hem de alt sınıftan erişilebilir.
  • Protected: Sadece alt sınıftan erişilebilir.
  • Private: Sadece üst sınıfta erişilebilir, alt sınıflardan erişilemez.

Örnek:

class ParentClass { public $publicVar = "I am public"; // Erişilebilir protected $protectedVar = "I am protected"; // Erişilebilir private $privateVar = "I am private"; // Erişilemez public function showVars( ) { return $this->publicVar . ", " . $this->protectedVar . ", " . $this->privateVar; } } class ChildClass extends ParentClass { public function showChildVars( ) { return $this->publicVar . ", " . $this->protectedVar; // Private var erişilemez } } $parent = new ParentClass(); echo $parent->showVars(); // "I am public, I am protected, I am private" $child = new ChildClass(); echo $child->showChildVars(); // "I am public, I am protected" // echo $child->privateVar; // Hata! Private özelliğe erişilemez.

Sonuç

PHP 8'de erişim belirleyicileri, sınıfların özelliklerini ve metotlarını korumak ve yönetmek için önemli bir araçtır. public, protected ve private gibi erişim belirleyicileri, kodun güvenliğini ve düzenini artırır. Bu yapı, nesne yönelimli programlamada veri kapsülleme ve sınıf hiyerarşisi oluşturmayı kolaylaştırır. Erişim belirleyicilerini doğru kullanarak, daha sürdürülebilir ve güvenli yazılımlar geliştirebilirsiniz.



Yorum Ekle

Üzerine gel