Cara Menggunakan Kembali Kode PHP Secara Efektif - Pengantar Ciri PHP
- 3353
- 1020
- Miss Angelo Toy
Awalnya dikembangkan oleh Rasmus Lerdorf
Pada tahun 1994, PHP adalah salah satu bahasa pemrograman tujuan umum yang paling banyak digunakan. Awalnya dilahirkan sebagai bahasa templat, selama bertahun-tahun ia berevolusi menjadi bahasa yang lengkap dengan yang tepat Oop
Dukungan (Pemrograman Berorientasi Objek). Inkarnasi terbarunya, 7.X
, memperkenalkan fitur baru seperti Deklarasi Jenis Pengembalian
untuk fungsi dan peningkatan kinerja yang sangat besar. Php adalah a warisan tunggal
Bahasa: Ini berarti bahwa kelas hanya dapat mewarisi untuk satu orang tua atau kelas dasar. Untuk mengatasi masalah ini fitur diperkenalkan dalam bahasa: sifat-sifat
. Dalam artikel ini kita akan melihat cara menggunakannya dan cara kerjanya.
Dalam tutorial ini Anda akan belajar:
- Cara menggunakan sifat di php
Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | OS-independen |
Perangkat lunak | Php |
Lainnya | Pengetahuan tentang PHP dan konsep pemrograman berorientasi objek dasar |
Konvensi | # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa |
Memperkenalkan sifat
PHP adalah bahasa waris tunggal: kelas anak hanya dapat mewarisi dari satu orang tua tunggal . Ini bisa menimbulkan masalah dalam hal penggunaan kembali kode, jika kelas perlu mewarisi banyak perilaku: sifat-sifat
adalah cara untuk menyelesaikan masalah ini. Mari kita lihat caranya. Cara kita membuat sifat sangat mirip dengan cara kita membuat kelas, tetapi salah satu perbedaan besar antara sifat dan kelas adalah bahwa suatu sifat tidak bisa dipakai, tetapi hanya dapat digunakan di dalam kelas atau di dalam sifat lain. Membuat sifat itu mudah:
Menyalin Kode yang terkandung di dalam "TraitOne" sangat sepele: itu hanya mencatat pesan. Mari kita lihat bagaimana kita bisa menggunakannya di dalam kelas:
tes kelas gunakan traitone;
Menyalin Kuncinya di sini adalah menggunakan
kata kunci, itu, saat digunakan di dalam kelas, mari kita "mengimpor" fungsionalitas yang dikelompokkan dalam sifat. Sulit membayangkan sebuah kasus di mana kelas yang kami buat di atas dapat bermanfaat, karena tidak memiliki metode atau sifatnya sendiri. Karena kelas memanfaatkan sifat "TraitOne", bagaimanapun, kita dapat mengakses metode "log":
$ test = tes baru (); $ test-> log (); "Saya adalah metode traitone!"
Menyalin Itu cukup mudah, tetapi apa yang terjadi ketika suatu kelas sudah memiliki metode dengan nama yang sama termasuk dalam sifat yang digunakannya ? Mari kita verifikasi. Kami menambahkan metode "log" di dalam kelas uji:
tes kelas gunakan traitone; log fungsi publik () echo "Saya adalah metode kelas uji!";
Menyalin Jika kita sekarang memanggil metode "log", kita mendapatkan hasil yang berbeda:
$ test = tes baru (); $ test-> log (); "Saya adalah metode kelas tes!"
Menyalin Bagaimana jika kelas uji tidak memiliki metode "log", tetapi mewarisi dari kelas dasar yang diperpanjang? Mari kita lihat:
kelas basis log fungsi publik () echo "Saya adalah metode kelas dasar!"; tes kelas memperluas basis gunakan traitOne; $ test = test baru (); $ test-> log ();" Saya adalah metode traitOne!"
Menyalin Seperti yang Anda lihat, kami mendapat “Saya adalah metode Traitone!“Sebagai hasil dari memohon metode log. Ini berarti bahwa Basis
Metode kelas telah ditimpa oleh orang di dalam sifat. Hirarki yang perlu diingat di sini sederhana. Di dalam kelas:
- Ciri -ciri mengesampingkan metode yang diwariskan;
- Metode kelas saat ini mengesampingkan metode sifat;
Menggunakan beberapa sifat
Di dalam kelas kita dapat menggunakan beberapa sifat: yang harus kita lakukan, adalah memasukkannya setelah menggunakan
Kata kunci, dipisahkan oleh koma:
tes kelas gunakan traitOne, traittwo;
Menyalin Penggunaan beberapa sifat, namun mungkin dapat membuat konflik nama. A kesalahan fatal dikembalikan jika sifat memiliki metode dengan nama yang sama:
Trait Traitone Public Function Log () echo "Saya adalah metode TraitOne!"; sifat traittwo log fungsi publik () echo" Saya adalah metode traittwo!"; tes kelas gunakan traitone, traittwo; php kesalahan fatal: log metode sifat belum diterapkan, karena ada tabrakan dengan metode sifat lain 1
Menyalin Apa yang bisa kita lakukan untuk menyelesaikan jenis konflik seperti itu? Kita bisa menggunakan alih-alih
operator, tidak termasuk metode yang tidak ingin kami gunakan:
tes kelas gunakan traitOne, traittwo traitOne :: log sebagai gantinya traittwo;
Menyalin Sintaksnya sangat sederhana: kami menentukan bahwa kami ingin menggunakan metode "log" dari sifat traitone, menyelesaikan konflik. Bagaimana jika kita ingin melakukan seperti di atas, tetapi kita masih ingin menjaga fungsionalitas yang disediakan oleh metode "log" dari traittwo? Kita harus membuat alias
untuk itu. Kita bisa melakukannya dengan menggunakan sebagai
operator. Dalam contoh berikut kami alias metode "log" sebagai "traittwo_log":
tes kelas gunakan traitOne, traittwo traitOne :: log sebagai gantinya traittwo; traittwo :: log as traititwo_log;
Menyalin Dengan cara ini kita masih dapat mengakses metode "log" traittwo, memohonnya sebagai traittwo_log ():
$ test = tes baru (); $ test-> log (); Saya adalah metode traitone! $ test-> traittwo_log (); Saya adalah metode traittwo!
Menyalin Menggunakan operator AS untuk mengubah visibilitas metode sifat
Di dalam kelas, sebagai
Operator juga dapat digunakan untuk mengubah visibilitas metode yang diimpor sebagai bagian dari suatu sifat. Dalam contoh sebelumnya, semua metode sifatnya publik
. Kita dapat mengubah ini di dalam kelas:
tes kelas gunakan traitone log as dilindungi;
Menyalin Dengan sintaks di atas kami menentukan bahwa metode log dari "TraitOne" harus digunakan sebagai terlindung
bahkan jika awalnya dinyatakan dengan a publik
visibilitas. Memang, jika kita mencoba memohon metode log, kita menerima kesalahan:
$ test = tes baru (); $ test-> log (); PERINGATAN PHP: Kesalahan Tak Terbang: Panggilan ke Metode Protected Test :: Log () Dari Konteks "dalam Kode Shell PHP: 1
Menyalin Jika kami memberikan nama untuk alias, perubahan visibilitas akan diterapkan pada metode alias, sedangkan yang asli akan mempertahankan visibilitasnya:
tes kelas gunakan traitone log sebagai aliased_log yang dilindungi; $ test = test baru (); $ test-> log (); Saya adalah metode traitone! $ test-> aliased_log (); PERINGATAN PHP: Kesalahan Tak Terbang: Panggilan ke Tes Metode Protected :: Aliased_log () dari konteks "dalam kode shell php: 1
Menyalin Metode abstrak dan statis di dalam sifat
Di dalam sifat kita dapat mendefinisikan keduanya abstrak
Dan statis
metode. Dalam kasus pertama, sifat akan membutuhkan kelas yang menggunakannya untuk memberikan implementasi konkret dari metode ini. Kesalahan fatal akan dihasilkan jika kelas tidak mengimplementasikan metode ini atau tidak dinyatakan sebagai abstrak:
Menyalin Metode sifat juga dapat dinyatakan dan digunakan sebagai statis
:
Menyalin Sifat sifat
Tidak hanya metode tetapi juga properti dapat didefinisikan di dalam sifat, satu -satunya aturan untuk dihormati adalah bahwa jika suatu properti didefinisikan di dalam sifat, kelas yang memanfaatkannya tidak dapat menentukan properti dengan nama yang sama, kecuali jika ia memiliki visibilitas yang sama dan nilai awal. Inilah contohnya:
Menyalin Itu $ name
Properti didefinisikan dalam "Traitone" dan juga di kelas "Tes". Keduanya memiliki visibilitas yang sama (dilindungi), tetapi nilai awal mereka berbeda, oleh karena itu mereka dianggap tidak kompatibel, dan ini menghasilkan kesalahan fatal.
Menutup pikiran
Dalam artikel ini kami belajar untuk mengetahui sifat-sifat
, fitur yang meningkatkan penggunaan kembali kode di PHP. Kami melihat bagaimana sifat tidak dapat dipakai tetapi hanya digunakan di dalam kelas, melalui menggunakan
kata kunci. Kami melihat apa urutan prioritas yang digunakan ketika suatu sifat dan kelas yang digunakan dalam metode implementasi dengan nama yang sama, bagaimana menyelesaikan konflik tersebut dengan menggunakan alih-alih
operator, dan cara membuat alias untuk metode sifat dan bagaimana mungkin untuk mengubah visibilitas mereka dengan sebagai
operator.
Akhirnya kami melihat bagaimana mungkin juga untuk mendefinisikan sifat dan metode statis atau abstrak di dalam suatu sifat. Ingin tahu lebih banyak tentang PHP? Kami memiliki banyak artikel tentang masalah ini!
Tutorial Linux Terkait:
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Cara Membangun Aplikasi Tkinter Menggunakan Objek Berorientasi…
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Bagaimana bekerja dengan WooCommerce Rest API dengan Python
- Cara membandingkan kinerja disk di linux
- Cara membuat tumpukan lampu berbasis Docker menggunakan Docker di…
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- Hal -hal yang harus diinstal pada Ubuntu 22.04
- Cara menulis ekstensi nautilus dengan nautilus-python
- Cara menyebarkan sinyal untuk proses anak dari pesta ..
- « Cara membuat, mengemas dan menandatangani ekstensi web Firefox
- Cara mengaktifkan autologin di kali linux »