cari
Rumahpembangunan bahagian belakangtutorial phpKaedah sihir dan pemalar yang telah ditetapkan dalam php

Magic Methods and Predefined Constants in PHP

mata teras

    PHP menyediakan pemalar yang telah ditetapkan dan kaedah sihir untuk meningkatkan fungsi kod. Pemalar yang telah ditetapkan menyediakan maklumat baca sahaja mengenai kod dan PHP, manakala kaedah sihir adalah nama yang dikhaskan di dalam kelas untuk membolehkan ciri-ciri PHP khas.
  • pemalar yang telah ditetapkan (semua huruf besar yang dilampirkan dengan ganda ganda) memberikan maklumat mengenai kod tersebut. Contohnya termasuk
  • (mengembalikan nombor baris dalam fail sumber), __LINE__ (mewakili nama fail, termasuk laluan penuhnya), __FILE__ (mewakili laluan fail sahaja), __DIR__ (mengembalikan nama kelas semasa), __CLASS__ __FUNCTION__ __METHOD__ Kaedah Magic menyediakan mekanisme untuk menghubungkan ke tingkah laku PHP khas. Mereka termasuk __NAMESPACE__ (digunakan untuk membuat contoh objek kelas),
  • (dipanggil apabila objek dimusnahkan oleh pemungut sampah php),
  • ET), dan __construct() (membantu mewakili objek sebagai rentetan). __destruct() __get() __set() PHP menyediakan satu set khas pemalar yang telah ditetapkan dan kaedah sihir untuk program ini. Tidak seperti pemalar yang ditetapkan dengan __isset(), nilai-nilai pemalar ini bergantung pada di mana ia digunakan dalam kod dan digunakan untuk mengakses maklumat baca sahaja mengenai kod dan PHP. Kaedah Magic adalah nama kaedah yang boleh anda gunakan di kelas anda untuk mengaitkan ciri -ciri PHP khas. Jika anda tidak belajar tentang kaedah sihir dan pemalar PHP, artikel ini adalah untuk anda! Saya akan menyemak beberapa kaedah yang lebih berguna dan cara menggunakannya dalam kod saya. __unset() __toString()
  • pemalar yang dipratentukan

define() pemalar yang telah ditetapkan digunakan untuk mengakses maklumat mengenai kod tersebut. Pemalar di sini ditulis dalam semua huruf besar yang dilampirkan dengan ganda ganda, seperti

dan

. Berikut adalah beberapa pemalar berguna yang disediakan oleh PHP:

  • __LINE__ Mengembalikan nombor garis pemalar yang terdapat dalam fail sumber, seperti yang ditunjukkan di bawah:
<?php
echo "line number: " . __LINE__; // line number: 2
echo "line number: " . __LINE__; // line number: 3
echo "line number: " . __LINE__; // line number: 4
?>
  • __FILE__ menunjukkan nama fail, termasuk laluan penuhnya, seperti yang ditunjukkan di bawah:
<?php
echo "the name of this file is: " . __FILE__;
// the directory and name of file is: C:wampwwwindex.php
?>
  • __DIR__ hanya mewakili laluan ke fail:
<?php
echo "the directory of this file is: " . __DIR__;
// the directory of this file is: C:wampwww
?>
  • __CLASS__ Mengembalikan nama kelas semasa:
<?php
class Sample {
    public function __construct() {
        echo __CLASS__;
    }
}
$obj = new Sample(); // Sample
?>
  • __FUNCTION__ Mengembalikan nama fungsi semasa:
<?php
function mySampleFunc() {
    echo "the name the function is: " . __FUNCTION__;
}
mySampleFunc(); //the name of function is: mySampleFunc
?>
  • __METHOD__ mewakili nama kaedah semasa:
<?php
class Sample {
    public static function myMethod() {
        echo "the name of method is: " . __METHOD__;
    }
}
Sample::myMethod(); // the name of the method is: myMethod
?>
  • __NAMESPACE__ mengembalikan nama ruang nama semasa:
<?php
namespace MySampleNS;
echo "the namespace is: " . __NAMESPACE__;
// the name space is: MySampleNS
?>

Kaedah Magic

Kaedah Magic menyediakan mekanisme untuk menghubungkan ke tingkah laku PHP khas. Tidak seperti pemalar sebelumnya, nama mereka ditulis dalam huruf kecil/huruf unta menggunakan dua garis bawah terkemuka, seperti __construct() dan __destruct(). __construct() adalah kaedah sihir yang dipanggil oleh PHP untuk membuat contoh objek kelas. Ia boleh menerima sebilangan parameter.

<?php
class MySample {
    public function __construct($foo) {
        echo __CLASS__ . " constructor called with $foo.";
    }
}
$obj = new MySample(42);
// MySample constructor called with 42
?>

seperti namanya, kaedah __destruct() dipanggil apabila objek dimusnahkan oleh pemungut sampah PHP. Ia tidak menerima sebarang parameter dan biasanya digunakan untuk melakukan sebarang operasi pembersihan yang mungkin diperlukan, seperti menutup sambungan pangkalan data.

<?php
class MySample {
    public function __destruct() {
        echo __CLASS__ . " destructor called.";
    }
}
$obj = new MySample; // MySample destructor called
?>

Kaedah Magic Seterusnya kami mengendalikan harta yang berlebihan dan menyediakan cara untuk membiarkan PHP mengendalikan sifat dan panggilan kaedah yang tidak ditentukan (atau tidak boleh diakses). Sekiranya harta itu tidak ditentukan (atau tidak boleh diakses) dan dipanggil dalam konteks getter, PHP memanggil kaedah __get(). Kaedah ini menerima parameter, iaitu nama harta itu. Ia harus mengembalikan nilai yang dianggap nilai harta itu. Kaedah __set() dipanggil untuk sifat yang tidak ditentukan dalam konteks setter. Ia menerima dua parameter, nama dan nilai atribut.

<?php
echo "line number: " . __LINE__; // line number: 2
echo "line number: " . __LINE__; // line number: 3
echo "line number: " . __LINE__; // line number: 4
?>

Dalam kod contoh di atas, nama harta tidak ditakrifkan dalam kelas. Saya cuba memberikan nilai "mysample" kepadanya, dan PHP memanggil kaedah sihir __set(). Ia mengambil "nama" sebagai parameter $prop dan "Alireza" sebagai $value, dan saya menyimpan nilai dalam array $myArray swasta. Kaedah __get() berfungsi sama; Terdapat kaedah sihir lain yang membantu kita mengambil dan menyemak pembolehubah ahli yang tidak dapat diakses, yang juga muncul dalam kod sampel: $obj->name, __get(), dan $prop. __isset() dan __unset() kedua -duanya dicetuskan oleh fungsi dengan nama yang sama (tanpa garis bawah) dalam PHP. __toString() Periksa sama ada harta itu ditetapkan dan menerima parameter, yang merupakan harta yang kami ingin uji. __isset() Menerima parameter, iaitu nama harta program yang ingin dicapai. Dalam banyak kes, adalah berguna untuk mewakili objek sebagai rentetan, seperti output kepada pengguna atau proses lain. Biasanya, PHP mewakili mereka sebagai ID dalam ingatan, yang tidak baik untuk kita. Kaedah __unset() membantu kita mewakili objek sebagai rentetan. Kaedah ini akan dicetuskan dalam mana -mana kes di mana objek digunakan sebagai rentetan, contohnya: __isset(). Ia juga boleh dipanggil secara langsung seperti mana -mana kaedah awam biasa yang lain, yang lebih baik untuk helah seperti menambahkan rentetan kosong untuk dibuang. __unset() __toString() echo "Hello $obj" Ringkasan

Pengaturcaraan berorientasikan objek boleh menghasilkan kod yang lebih mudah untuk mengekalkan dan menguji. Ia membantu kita membuat kod PHP yang lebih baik dan lebih standard. Di samping itu, ia boleh mengambil kesempatan daripada kaedah sihir dan pemalar yang disediakan oleh PHP.

gambar dari Stepan Kapl / Shutterstock

Soalan Lazim pada kaedah Magic PHP dan pemalar yang telah ditetapkan

Apakah jenis kaedah sihir yang berlainan dalam PHP?

Kaedah Magic dalam PHP adalah fungsi khas yang secara automatik akan mencetuskan apabila syarat -syarat tertentu dipenuhi. Mereka sentiasa bermula dengan ganda ganda (

). Jenis kaedah sihir yang berlainan dalam PHP termasuk `

construct ()

destruct () call () callStatic () get () set () isset () () tidur () wakeup () toString () invoke () set_state () clone () Setiap kaedah ini dicetuskan oleh peristiwa tertentu, seperti ketika membuat objek, mengakses harta, atau memanggil kaedah.

Bagaimana menggunakan pemalar yang telah ditetapkan dalam PHP?

pemalar yang telah ditetapkan dalam PHP sentiasa pemalar terbina dalam. Mereka termasuk pemalar teras seperti PHP_VERSION dan PHP_OS, serta banyak pemalar lain yang ditakrifkan oleh pelbagai sambungan. Untuk menggunakan pemalar yang telah ditetapkan, hanya tulis namanya tanpa menghalang tanda dolar ($) di dalamnya. Sebagai contoh, untuk mendapatkan versi PHP semasa, anda boleh menggunakan PHP_VERSION tetap, seperti yang ditunjukkan di bawah: echo PHP_VERSION;

Apakah tujuan kaedah sihir dalam php? __construct()

Kaedah Magic

dalam PHP secara automatik dipanggil setiap kali objek baru dibuat dari kelas. Ia biasanya digunakan untuk memulakan sifat objek atau untuk melakukan apa -apa tetapan yang diperlukan oleh objek sebelum digunakan. __construct()

Bolehkah saya menentukan pemalar saya sendiri dalam php?

Ya, anda boleh menentukan pemalar anda sendiri dalam PHP menggunakan fungsi

atau kata kunci define(). Sebaik sahaja pemalar ditakrifkan, ia tidak boleh diubah atau tidak ditentukan. const

Apakah perbezaan antara kaedah sihir dan kaedah konvensional dalam PHP?

Perbezaan utama antara kaedah sihir dan kaedah konvensional dalam PHP ialah kaedah sihir secara automatik dicetuskan oleh peristiwa -peristiwa tertentu, sementara kaedah konvensional perlu dipanggil secara eksplisit. Juga, kaedah sihir sentiasa bermula dengan ganda ganda (__), sementara kaedah konvensional tidak.

Bagaimana untuk memeriksa sama ada pemalar ditakrifkan dalam PHP?

anda boleh menggunakan fungsi

untuk memeriksa sama ada pemalar ditakrifkan dalam PHP. Fungsi ini mengambil nama pemalar sebagai rentetan, dan mengembalikan benar jika pemalar ditakrifkan, jika tidak, pulangan palsu. defined()

Apakah tujuan kaedah sihir dalam php?

Kaedah Magic di PHP secara automatik dipanggil apabila objek dimusnahkan atau skrip berakhir. Ia sering digunakan untuk melaksanakan tugas pembersihan, seperti menutup sambungan pangkalan data atau sumber membebaskan. __destruct()

Bolehkah saya menggunakan kaedah sihir dengan kaedah statik dalam php?

__destruct() Ya, anda boleh menggunakan kaedah sihir dengan kaedah statik dalam PHP.

Kaedah sihir secara automatik dipecat apabila memanggil kaedah statik yang tidak boleh diakses atau tidak wujud di dalam kelas.

Apakah kegunaan umum pemalar yang telah ditetapkan dalam PHP?

__callStatic() pemalar yang telah ditetapkan dalam PHP biasanya digunakan untuk mendapatkan maklumat mengenai persekitaran PHP atau untuk mengawal tingkah laku fungsi tertentu. Sebagai contoh, pemalar

boleh digunakan untuk memeriksa versi PHP, dan pemalar

boleh digunakan untuk memeriksa sistem operasi.

Bolehkah saya menulis semula kaedah sihir dalam php? PHP_VERSION PHP_OS Ya, anda boleh menulis semula kaedah sihir dalam PHP. Apabila membuat subclass, anda boleh memberikan pelaksanaan kaedah sihir anda sendiri. Walau bagaimanapun, jika anda ingin memanggil pelaksanaan kelas induk, anda boleh menggunakan kata kunci

.

Atas ialah kandungan terperinci Kaedah sihir dan pemalar yang telah ditetapkan dalam php. 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
Bekerja dengan Data Sesi Flash di LaravelBekerja dengan Data Sesi Flash di LaravelMar 12, 2025 pm 05:08 PM

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTCurl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTMar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Respons HTTP yang dipermudahkan dalam ujian LaravelRespons HTTP yang dipermudahkan dalam ujian LaravelMar 12, 2025 pm 05:09 PM

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Cara mendaftar dan menggunakan penyedia perkhidmatan LaravelCara mendaftar dan menggunakan penyedia perkhidmatan LaravelMar 07, 2025 am 01:18 AM

Bekas perkhidmatan dan penyedia perkhidmatan Laravel adalah asas kepada seni bina. Artikel ini meneroka bekas perkhidmatan, butiran pembekal perkhidmatan, pendaftaran, dan menunjukkan penggunaan praktikal dengan contoh. Kita akan mulakan dengan ove

12 skrip sembang php terbaik di codecanyon12 skrip sembang php terbaik di codecanyonMar 13, 2025 pm 12:08 PM

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHPPembalakan PHP: Amalan Terbaik untuk Analisis Log PHPMar 10, 2025 pm 02:32 PM

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Terangkan konsep pengikatan statik lewat dalam PHP.Terangkan konsep pengikatan statik lewat dalam PHP.Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Mar 28, 2025 pm 05:12 PM

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

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

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 laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna