Dalam siri ini, saya akan membincangkan asas-asas Pengaturcaraan Berorientasikan Objek PHP (OOP). Kandungan akan disusun mengikut bahagian berurutan, setiap satu memfokuskan pada topik tertentu. Jika anda seorang pemula atau tidak biasa dengan konsep OOP, siri ini direka bentuk untuk membimbing anda langkah demi langkah. Dalam bahagian ini, saya akan membincangkan tentang sifat statik, kaedah dan ini vs diri dalam PHP. Mari kita mulakan perjalanan belajar PHP OOP bersama-sama!
Apakah harta dan kaedah?
Pertama, mari kita cuba memahami sifat dan kaedah. Apabila kita mencipta berbilang objek menggunakan kelas, setiap objek diperuntukkan lokasi memori yang berasingan. Akibatnya, semua sifat dan kaedah objek itu juga diperuntukkan kepada lokasi ingatan khusus tersebut.
Ini bermakna apabila kita menukar mana-mana sifat objek, perubahan itu terhad kepada objek tertentu sahaja. Ia tidak menjejaskan mana-mana objek lain kerana sifat dan kaedah kelas dikaitkan dengan objek masing-masing kelas itu.
Untuk mengakses sifat atau kaedah ini dari luar kelas, kita perlu mencipta objek kelas tersebut. Walau bagaimanapun, jika kita ingin mengakses sifat atau kaedah ini dalam kelas, kita boleh menggunakan kata kunci $this. Kata kunci $this mewakili objek semasa kelas. Kami akan mengetahui lebih lanjut tentang kata kunci $ini kemudian. Mari kita lihat contoh berikut:
Contoh Kod
class Car { public $name; public $color; function __construct(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $tesla = new Car('Zip', 'Blue'); $tesla->getValue();
Dalam contoh ini, kita dapat melihat bahawa untuk mengakses sifat kelas, kita telah menggunakan kata kunci $this dalam kaedah kelas yang sama. Begitu juga, untuk menggunakan mana-mana kaedah kelas ini dari luar, kami telah mencipta objek kelas. Beginilah lazimnya kami menggunakan sifat atau kaedah biasa kelas.
Apakah sifat dan kaedah statik?
Walau bagaimanapun, sifat atau kaedah statik berfungsi secara berbeza. Apabila kita mentakrifkan kelas, ia diperuntukkan lokasi memori sekali sahaja. Begitu juga, apabila kita mentakrifkan sifat atau kaedah statik dalam kelas, ia juga diperuntukkan kepada lokasi memori tertentu di samping kelas itu sendiri, tetapi hanya sekali.
Akibatnya, jika kami mengubah suai mana-mana sifat atau kaedah statik kemudian, perubahan itu akan mencerminkan semua kejadian kelas. Dalam erti kata lain, di mana sahaja sifat atau kaedah statik digunakan, nilai kemas kininya akan tersedia.
Jika kita ingin mengakses sifat atau kaedah statik dari luar kelas, kita boleh menggunakan :: (pengendali resolusi skop) tanpa mencipta objek. Sebagai alternatif, kita juga boleh mengaksesnya selepas mencipta objek. Untuk mengaksesnya dari dalam kelas, kita boleh menggunakan kata kunci diri atau nama kelas itu sendiri. Di sini, kata kunci diri mewakili kelas.
Kami akan meneroka kata kunci diri dengan lebih terperinci kemudian. Mari kita lihat contoh berikut:
Contoh Kod
class Car { public $name; public $color; function __construct(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $tesla = new Car('Zip', 'Blue'); $tesla->getValue();
Dalam contoh ini, kita dapat melihat bahawa untuk mengakses sifat statik kelas, kita telah menggunakan kata kunci diri dalam kaedah kelas yang sama. Selain itu, untuk menggunakan kaedah statik dari luar kelas, kami mencipta objek kelas. Walau bagaimanapun, kami juga boleh mengaksesnya secara terus menggunakan nama kelas bersama-sama dengan :: (pengendali resolusi skop), tanpa membuat objek. Beginilah lazimnya kami menggunakan sifat statik atau kaedah kelas.
Dalam contoh di atas, kita dapat melihat bahawa menggunakan kelas Kereta, kita mencipta dua objek, $toyota dan $bmw, dengan data yang berbeza. Sekarang kita mahu mengakses nilai objek ini. Jika kita menjalankan kod di atas, kita akan melihat output berikut:
Contoh Kod
class Car { public static $name; public static $color; function __construct($name, $color) { self::$name = $name; self::$color = $color; } public static function getValue() { echo "Car name: " . self::$name . "\n"; echo "Car color: " . self::$color . "\n"; } } $toyota = new Car('Toyota', 'Black'); $bmw = new Car('BMW', 'Orange'); $toyota::getValue(); $bmw::getValue(); Car::getValue();
Kita dapat melihat bahawa kedua-dua objek menunjukkan nilai yang sama. Dalam erti kata lain, nilai yang kami peroleh adalah daripada objek yang paling baru dibuat. Walaupun apabila kami cuba mengakses nilai secara terus melalui kelas, kami masih mendapat nilai yang sama, iaitu, nilai objek kedua.
Alasan untuk ini agak jelas. Seperti yang dinyatakan sebelum ini, sifat atau kaedah statik dicipta dalam satu lokasi memori. Jika sifat atau kaedah statik ditukar dari mana-mana sahaja, perubahan itu mempengaruhi semua kejadian kelas.
Dalam contoh di atas, apabila kita mencipta objek kedua, nilai sifat berubah sebaik sahaja objek itu dicipta. Perubahan ini turut mempengaruhi objek yang dibuat sebelum ini kerana semua objek kelas berkongsi sifat atau kaedah statik yang sama.
Adalah penting untuk diingat bahawa sifat statik atau kaedah kelas tidak boleh digunakan dengan cara yang sama seperti sifat atau kaedah kelas biasa. Anda tidak boleh menggunakan operator → untuk mengaksesnya. Sebaliknya, anda mesti menggunakan ::(operator resolusi skop), sama ada anda mengaksesnya dari dalam atau luar kelas.
Kata kunci $this vs self
Apakah $ini?
Kami telah pun melihat penggunaan kata kunci $this dan self. Sekarang, mari kita mendalami konsep ini untuk lebih memahaminya.
$ini ialah kata kunci PHP terbina dalam. Apabila kita mencipta satu atau lebih objek menggunakan kelas, sifat dan kaedah biasa yang ditakrifkan dalam kelas boleh diakses menggunakan kata kunci $this dari dalam kelas.
Sekarang, kita tahu bahawa apabila kelas ditakrifkan, ia diperuntukkan kepada lokasi memori tertentu sekali sahaja. Ini mungkin menimbulkan persoalan: jika kita mencipta berbilang objek daripada kelas ini, adakah kata kunci $this akan mengakses sifat atau kaedah sekali sahaja untuk semua objek?
Jawapannya ialah "Tidak". Ini kerana, seperti yang telah kita bincangkan, kata kunci $this tidak mewakili kelas itu sendiri sebaliknya objek yang dicipta oleh kelas tersebut. Dalam erti kata lain, $ini berkaitan secara langsung dengan objek. Akibatnya, untuk setiap objek yang dicipta, kata kunci $this akan mengakses sifat dan kaedah kelas secara berasingan untuk setiap objek. Mari kita lihat contoh berikut:
class Car { public $name; public $color; function __construct(string $name, string $color) { $this->name = $name; $this->color = $color; } public function getValue() { echo "Car name: $this->name\n"; echo "Car color: $this->color\n"; } } $tesla = new Car('Zip', 'Blue'); $tesla->getValue();
Dalam contoh sebelumnya, kami telah menggunakannya beberapa kali, tetapi penggunaan $this tidak dibincangkan secara terperinci. Sekarang setelah kita mendapat sedikit pemahaman tentang $ini, kita boleh memahami penggunaannya dengan lebih baik. Menggunakan kelas ini, kami telah mencipta objek. Kini, kami faham bahawa kata kunci $this mengakses sifat secara berasingan untuk setiap objek.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kata kunci $this tidak boleh digunakan dalam kaedah statik. Mengapa ia tidak boleh digunakan akan diterangkan sebentar lagi.
Apakah kata kunci diri?
Kita sudah tahu bahawa apabila kelas ditakrifkan, ia diperuntukkan kepada lokasi memori sekali sahaja. Begitu juga, semua sifat statik dan kaedah dalam kelas itu juga diperuntukkan kepada lokasi memori bersama-sama dengan kelas, sekali sahaja.
Akibatnya, apabila kita mencipta objek menggunakan kelas ini, sifat atau kaedah statik tidak dicipta secara berasingan untuk setiap objek. Inilah sebabnya kami tidak boleh mengakses sifat atau kaedah statik ini menggunakan kata kunci $this. Kata kunci $this mewakili objek kelas dan memandangkan sifat atau kaedah statik tidak berkaitan dengan mana-mana objek tetapi terus kepada kelas itu sendiri, kata kunci itu tidak boleh diakses menggunakan $this.
Untuk mengakses sifat atau kaedah statik dalam kelas, kami menggunakan kata kunci kendiri atau nama kelas bersama-sama dengan ::(operator resolusi skop). Ini kerana kata kunci diri mewakili kelas itu sendiri. Mari kita lihat contoh berikut:
class Car { public static $name; public static $color; function __construct($name, $color) { self::$name = $name; self::$color = $color; } public static function getValue() { echo "Car name: " . self::$name . "\n"; echo "Car color: " . self::$color . "\n"; } } $toyota = new Car('Toyota', 'Black'); $bmw = new Car('BMW', 'Orange'); $toyota::getValue(); $bmw::getValue(); Car::getValue();
Dalam contoh ini, kami melihat bahawa kami boleh mengakses ahli statik dengan mudah dalam kaedah bukan statik menggunakan nama kelas atau kata kunci diri dengan pengendali resolusi ::skop, kerana ia berkaitan dengan kelas. Oleh itu, untuk mengaksesnya, kita tidak perlu mencipta objek yang berasingan.
Walau bagaimanapun, jika kami ingin mengakses ahli bukan statik dalam kaedah statik, kami perlu menggunakan kata kunci $this. Tetapi kita tahu bahawa kata kunci $this tidak boleh digunakan dalam kaedah statik kerana $ini berkaitan dengan objek, manakala ahli bukan statik tidak berkaitan dengan objek. Inilah sebabnya kami tidak boleh menggunakan kata kunci $this dalam kaedah statik.
Walau bagaimanapun, jika kita perlu mengakses ahli bukan statik dalam kaedah statik, kita boleh mencipta contoh atau objek kelas dalam kaedah statik dan kemudian menggunakan kata kunci $this untuk mengaksesnya, seperti yang ditunjukkan dalam contoh di atas .
Saya harap ini memberi anda pemahaman yang lebih jelas tentang penggunaan $this dan kata kunci diri. Itu sahaja untuk hari ini; kita sambung dalam pelajaran seterusnya.
Anda boleh berhubung dengan saya di GitHub dan Linkedin.
Atas ialah kandungan terperinci PHP OOP Bahagian-Statik harta, kaedah dan ini vs diri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tomodififydatainaphpsession, startTheSessionWithSsion_start (), thenuse $ _SessionToset, Modify, Orremovariables.1) startTheSession.2) setOrmodifySessionVariabelinging $ _Session.3) ReveVariablesWithunset ()

Array boleh disimpan dalam sesi PHP. 1. Mulakan sesi dan gunakan session_start (). 2. Buat array dan simpan dalam $ _Session. 3. Dapatkan array melalui $ _Session. 4. Mengoptimumkan data sesi untuk meningkatkan prestasi.

Pengumpulan sampah sesi PHP dicetuskan melalui mekanisme kebarangkalian untuk membersihkan data sesi yang telah tamat tempoh. 1) Tetapkan kebarangkalian pencetus dan kitaran hayat sesi dalam fail konfigurasi; 2) Anda boleh menggunakan tugas cron untuk mengoptimumkan aplikasi beban tinggi; 3) Anda perlu mengimbangi kekerapan dan prestasi pengumpulan sampah untuk mengelakkan kehilangan data.

Mengesan aktiviti sesi pengguna dalam PHP dilaksanakan melalui pengurusan sesi. 1) Gunakan session_start () untuk memulakan sesi. 2) Simpan dan data akses melalui array $ _Session. 3) Hubungi session_destroy () untuk mengakhiri sesi. Penjejakan sesi digunakan untuk analisis tingkah laku pengguna, pemantauan keselamatan, dan pengoptimuman prestasi.

Menggunakan pangkalan data untuk menyimpan data sesi PHP dapat meningkatkan prestasi dan skalabilitas. 1) Konfigurasi MySQL untuk menyimpan data sesi: Sediakan pemproses sesi dalam kod php.ini atau php. 2) Melaksanakan pemproses sesi tersuai: Tentukan fungsi terbuka, tutup, baca, tulis dan lain -lain untuk berinteraksi dengan pangkalan data. 3) Pengoptimuman dan amalan terbaik: Gunakan pengindeksan, caching, pemampatan data dan penyimpanan yang diedarkan untuk meningkatkan prestasi.

PhpSSsionsTrackUserDataacrossmultiplePagerequestSuseUniquidStoredinacookie.here'ShoWtomanAgeThemEffectely: 1) startAnSessionWithSession_Start () danStoRedatain $ _Session.2)

Dalam PHP, iterating melalui data sesi dapat dicapai melalui langkah -langkah berikut: 1. Mulakan sesi menggunakan session_start (). 2. ITERATE melalui gelung foreach melalui semua pasangan nilai utama dalam array $ _Session. 3. Apabila memproses struktur data kompleks, gunakan fungsi is_array () atau is_object () dan gunakan print_r () untuk mengeluarkan maklumat terperinci. 4. Apabila mengoptimumkan traversal, paging boleh digunakan untuk mengelakkan memproses sejumlah besar data pada satu masa. Ini akan membantu anda mengurus dan menggunakan data sesi PHP dengan lebih cekap dalam projek sebenar anda.

Sesi ini menyedari pengesahan pengguna melalui mekanisme pengurusan negara pelayan. 1) Penciptaan sesi dan penjanaan ID unik, 2) IDS diluluskan melalui kuki, 3) kedai pelayan dan mengakses data sesi melalui ID, 4) Pengesahan pengguna dan pengurusan status direalisasikan, meningkatkan keselamatan aplikasi dan pengalaman pengguna.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
