Menu
Coddy logo textTech

use Anahtar Sözcüğü

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 91.

Bir sınıfı her kullandığınızda tam ad alanı yolunu yazmak yorucu olabilir. use anahtar sözcüğü, bir sınıfı dosyanızın en üstünde içe aktarmanıza olanak tanır; böylece ona kısa adıyla başvurabilirsiniz.

\Blog\User ifadesini tekrar tekrar yazmak yerine, onu bir kez içe aktarabilirsiniz:

<?php
use Blog\User;

$user = new User("Alice");
echo $user->name;

Aynı ada sahip farklı ad alanlarından sınıflara ihtiyaç duyduğunuzda, as anahtar sözcüğünü kullanarak bir takma ad oluşturabilirsiniz:

<?php
use Blog\User as BlogUser;
use Shop\User as ShopUser;

$blogger = new BlogUser("Alice");
$customer = new ShopUser("alice@example.com");

echo $blogger->name . "\n";
echo $customer->email . "\n";

Çıktı:

Alice
alice@example.com

Aynı ad alanından birden fazla sınıfı gruplandırılmış içe aktarmaları kullanarak da içe aktarabilirsiniz:

<?php
use Blog\{User, Post, Comment};

$user = new User("Alice");
$post = new Post("Hello World");

Önemli Nokta: use ifadesi, namespace bildiriminden (varsa) sonra ve diğer tüm kodlardan önce yer almalıdır. Tekrarlanan namespace yollarını ortadan kaldırarak kodunuzu daha temiz ve okunması daha kolay hâle getirir.

challenge icon

Görev

Kolay

use anahtar sözcüğünü kullanarak sınıfları düzenli bir şekilde içe aktaralım ve her yerde tam ad alanı yollarını yazmaktan kaçınarak bir mesajlaşma uygulaması düzenleyelim.

Birlikte çalışan üç dosya oluşturacaksınız:

  • Messaging/Email.php: Messaging ad alanında bir Email sınıfı tanımlayın. Bu sınıfta bir public $address özelliği, adresi kabul edip ayarlayan bir yapıcı ve "Sending email to [address]" döndüren bir send() yöntemi bulunmalıdır.
  • Messaging/SMS.php: Messaging ad alanında bir SMS sınıfı tanımlayın. Bu sınıfta bir public $phone özelliği, telefon numarasını kabul edip ayarlayan bir yapıcı ve "Sending SMS to [phone]" döndüren bir send() yöntemi bulunmalıdır.
  • main.php: Her iki sınıf dosyasını dahil edin, ardından her iki sınıfı da içe aktarmak için use anahtar sözcüğünü kullanın. Adresi "alice@example.com" olan bir Email nesnesi ve telefon numarası "555-1234" olan bir SMS nesnesi oluşturun. Her nesne üzerinde send() çağrısının sonucunu yazdırın (her biri kendi satırında).

main.php içinde new \Messaging\Email(...) yazmak yerine sınıfları en üstte use ifadeleriyle içe aktararak yalnızca new Email(...) ve new SMS(...) yazabilirsiniz.

Kendin dene

<?php
// Sınıf dosyalarını dahil et
require_once 'Messaging/Email.php';
require_once 'Messaging/SMS.php';

// TODO: Messaging ad alanından her iki sınıfı içe aktarmak için 'use' anahtar kelimesini kullan
// Bu, 'new \Messaging\Email(...)' yerine 'new Email(...)' yazmanıza olanak tanır


// TODO: Create an Email object with address "alice@example.com"


// TODO: "555-1234" telefon numarasıyla bir SMS nesnesi oluştur


// TODO: Her nesne üzerinde send() çağrısının sonucunu yazdır (her biri kendi satırında)

?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi