Rumah pembangunan bahagian belakang masalah PHP Apakah yang dimaksudkan dengan garis bawah dalam php

Apakah yang dimaksudkan dengan garis bawah dalam php

Jan 19, 2022 am 09:47 AM
php Garis bawah

Satu garis bawah dalam php mewakili pembolehubah persendirian dan kaedah persendirian, dan dua garis bawah ialah pembolehubah terbina dalam PHP Contohnya, PHP menetapkan bahawa kaedah yang bermula dengan dua garis bawah dikhaskan sebagai kaedah ajaib, jadi adalah disyorkan agar anda. mempunyai nama fungsi terbaik Jangan mulakan dengan __ melainkan anda membebankan kaedah ajaib sedia ada.

Apakah yang dimaksudkan dengan garis bawah dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Apakah yang digariskan oleh php min?

Maksud pembolehubah yang bermula dengan garis bawah dalam PHP

Peraturan penamaan

Menambah satu adalah peribadi

Menambah dua biasanya lalai sistem , dipratakrifkan oleh sistem, iaitu apa yang dipanggil:

=========

"Kaedah ajaib" dan "Pemalar ajaib" ”

=====================

★Pemalar PHP bermula dan berakhir dengan garis bawah berganda ialah "pemalar ajaib":

__LINE__Nombor baris semasa dalam fail.

__FILE__Laluan penuh dan nama fail fail.

__DIR__Direktori tempat letak fail. Jika digunakan dalam fail yang disertakan, mengembalikan direktori tempat fail yang disertakan berada. Ia bersamaan dengan diname(__FILE__). Melainkan ia adalah direktori akar, nama direktori tidak termasuk garis miring di belakang

Nota: Kandungan di atas adalah daripada "Manual PHP Cina->Rujukan Bahasa->Constant->Magic Constant".

Daripada versi php5 dan yang lebih baru, kelas php boleh menggunakan kaedah ajaib.

PHP menetapkan bahawa kaedah yang bermula dengan dua garis bawah (__) dikhaskan sebagai kaedah ajaib, jadi adalah disyorkan bahawa nama fungsi anda tidak boleh bermula dengan __ melainkan ia adalah untuk membebankan kaedah sihir sedia ada.

Kaedah ajaib dalam PHP ialah: __build, __destruct, __call, __callStatic,__get, __set, __isset, __unset, __sleep, __wakeup, __toString, __set_state, __clone, __autoload

Dua kaedah ini direka untuk sifat yang tidak diisytiharkan dalam kelas dan kelas induknya

__get( $property ) Kaedah ini digunakan apabila sifat yang tidak ditentukan dipanggil Akan dicetuskan, parameter yang diluluskan ialah nama sifat sedang diakses

__set( $property, $value ) Apabila memberikan nilai kepada sifat yang tidak ditentukan, kaedah ini akan dicetuskan, parameter yang diluluskan ialah sifat yang ditetapkan Nama dan nilai

Bukan pengisytiharan di sini termasuk atribut yang kawalan aksesnya dilindungi dan peribadi (iaitu, atribut yang tidak mempunyai kebenaran untuk mengakses) apabila dipanggil menggunakan objek.

2. __isset, __unset

__isset( $property ) Kaedah ini dipanggil apabila fungsi isset() dipanggil pada undefined property

__unset( $property ) Ini kaedah dipanggil apabila fungsi unset() dipanggil pada sifat yang tidak ditentukan

Sama seperti kaedah __get dan kaedah __set. Apabila dipanggil dengan objek, kawalan akses dilindungi, peribadi . Atribut (iaitu, atribut tanpa kebenaran untuk mengakses)

3 __call

__call( $method, $arg_array ) Apabila memanggil kaedah yang tidak ditentukan, kaedah ini dipanggil

Kaedah yang tidak ditentukan di sini termasuk kaedah yang tidak mempunyai kebenaran untuk mengakses jika kaedah itu tidak wujud, pergi ke kelas induk untuk mencari kaedah Jika ia tidak wujud dalam kelas induk, panggil kaedah __call() ini kelas. Jika kelas ini Jika kaedah __call() tidak wujud dalam kelas induk, pergi ke kaedah __call() dalam kelas induk

4 __autoload

fungsi __autoload muncul secara automatik apabila cuba menggunakan kelas yang belum ditakrifkan. Dengan memanggil fungsi ini, enjin skrip mempunyai peluang terakhir untuk memuatkan kelas yang diperlukan sebelum PHP gagal dengan ralat.

Jika anda ingin menentukan kelas autoloading global, anda mesti menggunakan kaedah spl_autoload_register() untuk mendaftarkan kelas pemprosesan ke perpustakaan standard PHP:

Nota: dilemparkan ke dalam __autoload fungsi Pengecualian tidak boleh ditangkap oleh blok pernyataan tangkapan dan menyebabkan ralat maut, jadi ia harus ditangkap dalam fungsi itu sendiri.

<?php  
class Loader  
{  
static function autoload_class($class_name)  
{  
//寻找正确的$class_name类,并引入,没有则抛出异常  
}  
}  
  
/** 
*  设置对象的自动载入 
*  spl_autoload_register — Register given function as __autoload() implementation 
*/  
spl_autoload_register(array(&#39;Loader&#39;, &#39;autoload_class&#39;));  
  
$a = new Test();//Test没用require就实例化,实现自动加载,很多框架就用这种方法自动加载类  
  
?>
Salin selepas log masuk
5. __build, __destruct

kaedah constructor __, kaedah ini dipanggil apabila objek dicipta Kelebihan menggunakan kaedah ini berbanding PHP4 ialah kaedah konstruktor boleh mempunyai nama yang unik . Tidak kira apa nama kelasnya Dengan cara ini, apabila anda menukar nama kelas, anda tidak perlu menukar nama pembina

__destruct destructor kaedah akan mengeluarkan objek dari ingatan sebelum ia dimusnahkan Sebelum membersihkan) panggil kaedah ini. Secara lalai, PHP hanya melepaskan memori yang diduduki oleh sifat objek dan memusnahkan sumber berkaitan objek. Pemusnah membenarkan anda melaksanakan kod sewenang-wenangnya untuk mengosongkan memori selepas menggunakan objek. Apabila PHP memutuskan bahawa skrip anda tidak lagi dikaitkan dengan objek, pemusnah akan dipanggil.

Dalam ruang nama fungsi, ini akan berlaku apabila fungsi itu kembali.

Untuk pembolehubah global, ini berlaku pada penghujung skrip.

Jika anda ingin memusnahkan objek secara eksplisit, anda boleh menetapkan sebarang nilai lain kepada pembolehubah yang menunjuk ke objek Biasanya tetapkan pembolehubah kepada NULL atau panggilan tidak ditetapkan.

6 >

Penugasan objek dalam PHP5 menggunakan tugasan rujukan Jika anda ingin menyalin objek, anda perlu menggunakan kaedah klon Apabila memanggil kaedah ini, objek akan secara automatik memanggil kaedah ajaib __clone operasi permulaan perlu dilakukan , boleh dilaksanakan dalam kaedah __clone.

7. __toString

Kaedah __toString dipanggil secara automatik apabila menukar objek kepada rentetan, seperti semasa menggunakan gema untuk mencetak objek.

Jika kelas tidak melaksanakan kaedah ini, objek tidak boleh dicetak melalui gema, jika tidak, ia akan memaparkan: Ralat maut yang boleh ditangkap: Objek ujian kelas tidak boleh ditukar kepada rentetan dalam

Kaedah ini mesti kembali seutas tali.

Sebelum PHP 5.2.0, kaedah __toString hanya boleh berkuat kuasa apabila digunakan bersama echo() atau print(). Selepas PHP 5.2.0, ia boleh berkuat kuasa dalam mana-mana persekitaran rentetan (contohnya, melalui printf(), menggunakan pengubah %s), tetapi tidak boleh digunakan dalam persekitaran bukan rentetan (seperti menggunakan pengubah %d). Daripada PHP 5.2.0, jika objek yang tidak mentakrifkan kaedah __toString ditukar kepada rentetan, ralat E_RECOVERABLE_ERROR akan dilaporkan.

8. __sleep, __wakeup

__sleep Gunakan

__wakeup apabila bersiri dan panggil

serialize() untuk menyemak kelas Adakah terdapat fungsi dengan sihir nama __tidur. Jika ya, fungsi tersebut akan dijalankan sebelum sebarang siri. Ia mengosongkan objek dan harus mengembalikan tatasusunan yang mengandungi nama semua pembolehubah dalam objek yang harus bersiri.

Tujuan menggunakan __sleep adalah untuk menutup sebarang sambungan pangkalan data yang mungkin ada pada objek, menyerahkan data yang belum selesai atau melaksanakan tugas pembersihan yang serupa. Selain itu, fungsi ini berguna jika anda mempunyai objek yang sangat besar yang tidak perlu disimpan sepenuhnya.

Sebaliknya, unserialize() menyemak kewujudan fungsi dengan nama ajaib __wakeup. Fungsi ini boleh membina semula sebarang sumber yang mungkin ada pada objek, jika ada.

Tujuan menggunakan __wakeup adalah untuk mewujudkan semula mana-mana sambungan pangkalan data yang mungkin hilang semasa penyirian dan untuk mengendalikan tugas pemulaan semula yang lain.

9. __set_state

Apabila var_export() dipanggil, kaedah statik ini akan dipanggil (sah sejak PHP 5.1.0).

Satu-satunya parameter kaedah ini ialah tatasusunan, yang mengandungi sifat kelas yang disusun dalam format tatasusunan('property' => nilai, …).

10. __invoke

Apabila cuba memanggil objek dengan memanggil fungsi, kaedah __invoke akan dipanggil secara automatik.

PHP5.3.0 atau ke atas adalah sah

11 __callStatic

Ia berfungsi serupa dengan kaedah ajaib __callStatic() adalah untuk mengendalikan panggilan kaedah statik 🎜>

Sah untuk PHP 5.3.0 dan ke atas

PHP sememangnya telah mengukuhkan takrifan kaedah __callStatic() ia mestilah awam dan mesti diisytiharkan statik. Begitu juga, kaedah sihir __call() mesti ditakrifkan sebagai awam, begitu juga semua kaedah sihir lain.

Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah yang dimaksudkan dengan garis bawah dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles