cari
Rumahpembangunan bahagian belakangtutorial phpPHP OOP Part-Constructor and Destructor

PHP OOP Part-Constructor and Destructor

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 pembina dan pemusnah dalam PHP. Mari kita mulakan perjalanan belajar PHP OOP bersama-sama!

Apa itu Pembina?

Mari kita cuba memahami dahulu apakah itu Pembina? Secara ringkas, pembina ialah kaedah khas yang dipanggil secara automatik apabila objek kelas dicipta. Pembina digunakan untuk memulakan sifat objek. Ia adalah kaedah ajaib dalam PHP. Tetapi sekarang kita perlu memahami tentang pembina secara terperinci. Mari lihat contoh kod dahulu.

Contoh Kod

class Car
{
   public $name;
   public $color;

   public function setValue(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";
   }
}

$toyota = new Car;
$toyota->setValue('Toyota', 'Red');
$toyota->getValue();

Dalam contoh di atas, atau dalam bahagian sebelumnya, kami menetapkan nilai objek menggunakan kaedah. Ini dipanggil Kaedah Setter, ia bermakna selepas mencipta objek kelas, jika kita menetapkan nilai menggunakan kaedah objek itu, ia dirujuk sebagai Kaedah Setter. Walau bagaimanapun, kami boleh memudahkan proses ini menggunakan kaedah ajaib PHP terbina dalam. Kaedah ini dipanggil pembina, dan dalam PHP, ia ditakrifkan menggunakan __construct(). Mari 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";
   }
}

$toyota = new Car('Toyota', 'Red');
$toyota->getValue();

Dalam contoh ini, bukannya menggunakan kaedah setValue, kami telah menggunakan kaedah __construct(). Jadi, apakah kelebihan menggunakan __construct()? Dalam contoh sebelumnya, selepas mencipta objek kelas Kereta, kami perlu lulus nilai untuk setiap kereta menggunakan kaedah setValue. Tetapi sekarang, dengan menggunakan __construct(), kita boleh lulus nilai pada masa penciptaan objek dan kita tidak perlu memanggil kaedah tambahan.

Tetapi sekarang, persoalan timbul: Kami tidak memanggil __construct(), jadi bagaimanakah ia menerima nilai dan menetapkannya kepada pembolehubah?

Contoh Kod

new Car('Toyota', 'Red');

Apabila kita menggunakan __construct() di dalam kelas, dan pembina itu menerima nilai dari luar, kita boleh menghantar nilai dalam kurungan pertama apabila mencipta objek kelas. Sebaik sahaja kami mencipta objek dengan cara ini, kaedah __construct() dipanggil secara automatik. Dalam erti kata lain, setiap kali kita mencipta contoh kelas, kaedah __construct() ia akan memanggil serta-merta. Inilah cara kita boleh memulakan sifat objek menggunakan pembina. Memandangkan __construct() ialah kaedah ajaib, jadi kita tidak perlu memanggilnya secara eksplisit. Ia akan berjalan secara automatik dalam senario tertentu untuk melaksanakan tugas tertentu.

Apa itu Pemusnah?

Pemusnah juga merupakan kaedah ajaib dalam PHP. Apabila kita mencipta objek menggunakan kelas, kita melaksanakan pelbagai tugas dengan objek itu. Tetapi apabila tugas selesai, ia bermakna pemusnah akan dicetuskan apabila objek dimusnahkan. Pemusnah ditakrifkan dalam PHP menggunakan __destruct().

Di sini, adalah penting untuk ambil perhatian bahawa jika kita mencipta berbilang objek menggunakan kelas, kaedah __destruct() akan dipanggil untuk setiap objek apabila kesemuanya dimusnahkan. Dalam erti kata lain, kaedah __destruct() akan dipanggil seberapa banyak bilangan objek yang dibuat menggunakan kelas tersebut. Mari lihat contoh berikut.

Contoh Kod

class Car
{
   public $name;
   public $color;

   public function setValue(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";
   }
}

$toyota = new Car;
$toyota->setValue('Toyota', 'Red');
$toyota->getValue();

Jika kita menjalankan kod ini, kita akan melihat output 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";
   }
}

$toyota = new Car('Toyota', 'Red');
$toyota->getValue();

Sekarang, anda mungkin tertanya-tanya dalam kes yang mana kita harus menggunakan kaedah __destruct(). Apabila kita bekerja dengan fail atau pangkalan data, kita perlu membukanya, tetapi setelah tugas kita selesai, maka kita perlu menutup fail atau pangkalan data. Dalam kes sedemikian, kita boleh menggunakan kaedah __destruct(). Selain itu, terdapat banyak kes penggunaan kehidupan sebenar untuk kaedah __destruct().

Saya harap sekarang kita mempunyai sedikit pemahaman tentang __construct() dan __destruct(). Selain daripada kaedah ini, terdapat kaedah ajaib lain yang penting dalam PHP, seperti __call(), __callStatic(), dsb. Kita juga boleh menggunakan kaedah ini, kerana mereka melaksanakan tugas tertentu dalam pelbagai senario dalam kelas.

Jadi, itu sahaja untuk hari ini. Kami akan bercakap lebih lanjut mengenai topik lain dalam pelajaran seterusnya. Nantikan! Selamat mengekod!

Anda boleh berhubung dengan saya di Linkedin dan GitHub.

Atas ialah kandungan terperinci PHP OOP Part-Constructor and Destructor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah perbezaan antara masa tamat sesi mutlak dan terbiar?Apakah perbezaan antara masa tamat sesi mutlak dan terbiar?May 03, 2025 am 12:21 AM

Timeout sesi mutlak bermula pada masa penciptaan sesi, sementara waktu tamat sesi terbiar bermula pada masa operasi pengguna. Tamat masa sesi mutlak sesuai untuk senario di mana kawalan ketat kitaran hayat sesi diperlukan, seperti aplikasi kewangan; Timeout sesi terbiar sesuai untuk aplikasi yang mahu pengguna menyimpan sesi mereka aktif untuk masa yang lama, seperti media sosial.

Apakah langkah yang akan anda ambil jika sesi tidak berfungsi di pelayan anda?Apakah langkah yang akan anda ambil jika sesi tidak berfungsi di pelayan anda?May 03, 2025 am 12:19 AM

Kegagalan sesi pelayan boleh diselesaikan dengan mengikuti langkah -langkah: 1. Semak konfigurasi pelayan untuk memastikan sesi ditetapkan dengan betul. 2. Sahkan kuki klien, sahkan bahawa penyemak imbas menyokongnya dan hantar dengan betul. 3. Periksa perkhidmatan penyimpanan sesi, seperti Redis, untuk memastikan bahawa mereka beroperasi secara normal. 4. Semak kod aplikasi untuk memastikan logik sesi yang betul. Melalui langkah -langkah ini, masalah perbualan dapat didiagnosis dengan berkesan dan diperbaiki dan pengalaman pengguna dapat diperbaiki.

Apakah kepentingan fungsi session_start ()?Apakah kepentingan fungsi session_start ()?May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Apakah kepentingan menetapkan bendera httponly untuk cookies sesi?Apakah kepentingan menetapkan bendera httponly untuk cookies sesi?May 03, 2025 am 12:10 AM

Menetapkan bendera httponly adalah penting untuk cookies sesi kerana ia dapat mencegah serangan XSS dengan berkesan dan melindungi maklumat sesi pengguna. Khususnya, 1) bendera httponly menghalang JavaScript daripada mengakses kuki, 2) bendera boleh ditetapkan melalui setcookies dan make_response dalam php dan flask, 3) walaupun ia tidak dapat dicegah dari semua serangan, ia harus menjadi sebahagian daripada dasar keselamatan keseluruhan.

Masalah apa yang diselesaikan oleh sesi php dalam pembangunan web?Masalah apa yang diselesaikan oleh sesi php dalam pembangunan web?May 03, 2025 am 12:02 AM

PhpsSesionssolveThublemofMainTainStateAsmultipHttprequestsByStoringDataontheserverArverArsociatingWithauniquesession.1) merekaSTOREdataServer-sisi, biasanya

Data apa yang boleh disimpan dalam sesi PHP?Data apa yang boleh disimpan dalam sesi PHP?May 02, 2025 am 12:17 AM

Phpsessionscanstorestrings, nombor, tatasusunan, andobjects.1.strings: textdatalikeusernames.2.numbers: integersorfloatsforcounters.3.Arrays: ListsLikeshoppingCarts.4.Objects: complextructureSturesthatareserialized.

Bagaimana anda memulakan sesi PHP?Bagaimana anda memulakan sesi PHP?May 02, 2025 am 12:16 AM

Tostartaphpsession, usesession_start () atthescript'sbeginning.1) placeitbeforeanyoutputtosetthesessioncookie.2) usesessionsforusererdatalikeloginstatusorshoppingcarts.3)

Apakah regenerasi sesi, dan bagaimanakah ia meningkatkan keselamatan?Apakah regenerasi sesi, dan bagaimanakah ia meningkatkan keselamatan?May 02, 2025 am 12:15 AM

Penjanaan semula sesi merujuk kepada menjana ID sesi baru dan membatalkan ID lama apabila pengguna melakukan operasi sensitif dalam kes serangan tetap sesi. Langkah-langkah pelaksanaan termasuk: 1. Mengesan Operasi Sensitif, 2. Menjana ID Sesi Baru, 3. Memusnahkan ID Sesi Lama, 4. Kemas kini maklumat sesi pengguna.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),