Kata Kunci use
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan PHP di Coddy. Pelajaran 11 dari 91.
Menuliskan seluruh path namespace setiap kali kamu menggunakan class bisa terasa merepotkan. Kata kunci use memungkinkan kamu mengimpor class di bagian atas file, sehingga kamu bisa merujuknya dengan nama singkat.
Daripada menulis \Blog\User berulang kali, kamu bisa mengimpornya sekali:
<?php
use Blog\User;
$user = new User("Alice");
echo $user->name;
Saat kamu membutuhkan class dari namespace berbeda dengan nama yang sama, kamu bisa membuat alias menggunakan kata kunci as:
<?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";
Output:
Alice
alice@example.com
Kamu juga dapat mengimpor beberapa class dari namespace yang sama menggunakan impor yang dikelompokkan:
<?php
use Blog\{User, Post, Comment};
$user = new User("Alice");
$post = new Post("Hello World");
Poin Utama: Pernyataan use harus muncul setelah deklarasi namespace (jika ada) dan sebelum kode lainnya. Pernyataan ini membuat kodemu lebih rapi dan mudah dibaca karena menghilangkan path namespace yang berulang.
Tantangan
MudahMari susun aplikasi pesan menggunakan kata kunci use untuk mengimpor class dengan rapi dan menghindari penulisan path namespace lengkap di mana-mana.
Kamu akan membuat tiga file yang bekerja bersama:
Messaging/Email.php: Definisikan classEmaildi namespaceMessaging. Class ini harus memiliki propertypublic $address, konstruktor yang menerima dan menetapkan alamat, serta methodsend()yang mengembalikan"Sending email to [address]".Messaging/SMS.php: Definisikan classSMSdi namespaceMessaging. Class ini harus memiliki propertypublic $phone, konstruktor yang menerima dan menetapkan nomor telepon, serta methodsend()yang mengembalikan"Sending SMS to [phone]".main.php: Sertakan kedua file class, lalu gunakan kata kunciuseuntuk mengimpor kedua class. Buat objectEmaildengan alamat"alice@example.com"dan objectSMSdengan nomor telepon"555-1234". Cetak hasil pemanggilansend()pada setiap object, masing-masing pada barisnya sendiri.
Di main.php, alih-alih menulis new \Messaging\Email(...), impor class di bagian atas dengan pernyataan use agar kamu cukup menulis new Email(...) dan new SMS(...).
Coba sendiri
<?php
// Sertakan file class
require_once 'Messaging/Email.php';
require_once 'Messaging/SMS.php';
// TODO: Gunakan kata kunci 'use' untuk mengimpor kedua class dari namespace Messaging
// Dengan begitu, kamu bisa menulis 'new Email(...)' alih-alih 'new \Messaging\Email(...)'
// TODO: Buat object Email dengan alamat "alice@example.com"
// TODO: Buat object SMS dengan nomor telepon "555-1234"
// TODO: Cetak hasil pemanggilan send() pada setiap object, masing-masing pada baris terpisah
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengenalan OOPclass vs objectKata Kunci $thismethodpropertyConstructor (__construct)Destructor (__destruct)Ringkasan: Kalkulator Sederhana4Pewarisan
Pewarisan DasarKata Kunci parent::Penimpaan methodKata Kunci finalClass AbstrakRingkasan: Hierarki Karyawan7Enkapsulasi
Public, Protected, PrivateModifier Akses secara MendalamGetter dan SetterPenyembunyian InformasiPromosi Constructor (8.0)Ulasan: Sistem Catatan Siswa2Namespace dan Autoloading
Pengenalan NamespaceKata Kunci useStandar Autoloading PSR-4Autoloader ComposerRingkasan: Proyek yang Terorganisasi5Interface dan Kontrak
Pengenalan InterfaceMengimplementasikan InterfaceImplementasi Beberapa InterfaceInterface vs Abstract ClassPetunjuk Tipe dengan InterfaceRekap: Kalkulator Bentuk8Magic Methods
Pengantar Magic Methods__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Cloning Object__serialize & __unserializeRingkasan: Koleksi Kustom11Sistem Tipe Data dan Penanganan Error
Deklarasi TipeTipe NullableTipe Union dan IntersectionClass ExceptionHierarki Exception KustomTry, Catch, FinallyRekap: Validator Form3Property dalam class
Property instance vs staticKonstanta dalam classMethod & property staticProperty private & protectedProperty readonly (PHP 8.1)Ulasan: Pengelola Rekening Bank6Polimorfisme
Meninjau Kembali Method OverridingPolimorfisme melalui AntarmukaPetunjuk Tipe dan Tipe UnionPengikatan Statis TertundaRangkuman: Pemroses PembayaranLatihan sendiri: Compiler PHP online