Menu
Coddy logo textTech

use Anahtar Kelimesi

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 kelimesi, 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.

Sürekli \Blog\User yazmak yerine, onu bir kez içe aktarabilirsiniz:

<?php
use Blog\User;

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

Farklı ad alanlarından (namespaces) aynı isme sahip sınıflara ihtiyaç duyduğunuzda, as anahtar kelimesini 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

Ayrıca gruplandırılmış içe aktarmaları kullanarak aynı ad alanından birden fazla sınıfı 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. Tekrarlayan ad alanı yollarını ortadan kaldırarak kodunuzu daha temiz ve okunması daha kolay hale getirir.

challenge icon

Görev

Kolay

Sınıfları temiz bir şekilde içe aktarmak ve her yerde tam ad alanı yollarını yazmaktan kaçınmak için use anahtar kelimesini kullanarak bir mesajlaşma uygulaması düzenleyelim.

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

  • Messaging/Email.phpMessaging ad alanında bir Email sınıfı tanımlayın. Bu sınıfın bir public $address özelliği, adresi kabul eden ve ayarlayan bir yapıcı metodu (constructor) ve "Sending email to " ile adresi birleştirip döndüren bir send() metodu olmalıdır.
  • Messaging/SMS.phpMessaging ad alanında bir SMS sınıfı tanımlayın. Bu sınıfın bir public $phone özelliği, telefon numarasını kabul eden ve ayarlayan bir yapıcı metodu (constructor) ve "Sending SMS to " ile telefon numarasını birleştirip döndüren bir send() metodu olmalıdır.
  • main.php — Her iki sınıf dosyasını dahil edin, ardından her iki sınıfı içe aktarmak için use anahtar kelimesini kullanın. "alice@example.com" adresiyle bir Email nesnesi ve "555-1234" telefonuyla bir SMS nesnesi oluşturun. Her nesne üzerinde send() metodunu çağırmanın sonucunu yazdırın (her biri kendi satırında).

main.php dosyasında, new \Messaging\Email(...) yazmak yerine, sınıfları en üstte use ifadeleriyle içe aktaracaksınız, böylece sadece new Email(...) ve new SMS(...) yazabileceksiniz.

Kopya kağıdı

use anahtar kelimesi, bir sınıfı dosyanızın en üstünde içe aktararak, ona tam ad alanı yolu yerine kısa adıyla başvurmanıza olanak tanır:

<?php
use Blog\User;

$user = new User("Alice");

Farklı ad alanlarından sınıflar aynı adı paylaştığında, as anahtar kelimesini kullanarak bir takma ad oluşturun:

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

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

Gruplandırılmış içe aktarmaları kullanarak aynı ad alanından birden fazla sınıfı içe aktarın:

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

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

use ifadesi, namespace bildiriminden (varsa) sonra ve diğer tüm kodlardan önce yer almalıdır.

Kendin dene

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

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


// TODO: "alice@example.com" adresiyle bir Email nesnesi oluşturun


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


// TODO: Her nesne üzerinde send() metodunu çağırmanın sonucunu yazdırın (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