


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
. Berikut adalah beberapa pemalar berguna yang disediakan oleh PHP: 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 seperti namanya, kaedah 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 Dalam kod contoh di atas, nama harta tidak ditakrifkan dalam kelas. Saya cuba memberikan nilai "mysample" kepadanya, dan PHP memanggil kaedah sihir
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?
destruct () pemalar yang telah ditetapkan dalam PHP sentiasa pemalar terbina dalam. Mereka termasuk pemalar teras seperti 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. atau kata kunci
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.
Bolehkah saya menulis semula kaedah sihir dalam 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
?>
__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
?>
__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
?>
__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
?>
__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 ). Jenis kaedah sihir yang berlainan dalam PHP termasuk `
construct () 、
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?
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?
Kaedah Magic __construct()
__construct()
Ya, anda boleh menentukan pemalar anda sendiri dalam PHP menggunakan fungsi define()
. Sebaik sahaja pemalar ditakrifkan, ia tidak boleh diubah atau tidak ditentukan. const
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.
anda boleh menggunakan fungsi defined()
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.
Bolehkah saya menggunakan kaedah sihir dengan kaedah statik dalam php? __destruct()
__destruct()
Ya, anda boleh menggunakan kaedah sihir dengan kaedah statik dalam PHP.
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 sistem operasi.
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Masalah dan penyelesaian biasa untuk skop pembolehubah PHP termasuk: 1. Pembolehubah global tidak dapat diakses dalam fungsi, dan ia perlu diluluskan menggunakan kata kunci atau parameter global; 2. Pembolehubah statik diisytiharkan dengan statik, dan ia hanya dimulakan sekali dan nilai dikekalkan antara pelbagai panggilan; 3. Pembolehubah hyperglobal seperti $ _get dan $ _post boleh digunakan secara langsung dalam mana -mana skop, tetapi anda perlu memberi perhatian kepada penapisan yang selamat; 4. Fungsi Anonymous perlu memperkenalkan pembolehubah skop induk melalui kata kunci penggunaan, dan apabila mengubah suai pembolehubah luaran, anda perlu lulus rujukan. Menguasai peraturan ini boleh membantu mengelakkan kesilapan dan meningkatkan kestabilan kod.

Untuk mengendalikan muat naik fail PHP dengan selamat, anda perlu mengesahkan sumber dan jenis, mengawal nama fail dan laluan, menetapkan sekatan pelayan, dan memproses fail media dua kali. 1. Sahkan sumber muat naik untuk mengelakkan CSRF melalui token dan mengesan jenis mime sebenar melalui finfo_file menggunakan kawalan putih; 2. Namakan semula fail ke rentetan rawak dan tentukan pelanjutan untuk menyimpannya dalam direktori bukan web mengikut jenis pengesanan; 3. Konfigurasi PHP mengehadkan saiz muat naik dan direktori sementara Nginx/Apache melarang akses ke direktori muat naik; 4. Perpustakaan GD menyambung semula gambar -gambar untuk membersihkan data yang berpotensi.

Terdapat tiga kaedah umum untuk kod komen PHP: 1. Use // atau # untuk menyekat satu baris kod, dan disyorkan untuk menggunakan //; 2. Gunakan /.../ untuk membungkus blok kod dengan pelbagai baris, yang tidak boleh bersarang tetapi boleh diseberang; 3. Komen -komen kemahiran gabungan seperti menggunakan / jika () {} / untuk mengawal blok logik, atau untuk meningkatkan kecekapan dengan kunci pintasan editor, anda harus memberi perhatian kepada simbol penutupan dan mengelakkan bersarang apabila menggunakannya.

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Kunci untuk menulis komen PHP adalah untuk menjelaskan tujuan dan spesifikasi. Komen harus menjelaskan "mengapa" dan bukannya "apa yang dilakukan", mengelakkan redundansi atau terlalu kesederhanaan. 1. Gunakan format bersatu, seperti docblock (/*/) untuk deskripsi kelas dan kaedah untuk meningkatkan keserasian dan keserasian alat; 2. Menekankan sebab -sebab di sebalik logik, seperti mengapa JS melompat perlu dikeluarkan secara manual; 3. Tambahkan gambaran keseluruhan gambaran sebelum kod kompleks, terangkan proses dalam langkah -langkah, dan membantu memahami idea keseluruhan; 4. Gunakan Todo dan Fixme secara rasional untuk menandakan item dan masalah untuk memudahkan penjejakan dan kerjasama berikutnya. Anotasi yang baik dapat mengurangkan kos komunikasi dan meningkatkan kecekapan penyelenggaraan kod.

Toinstallphpquickly, usexampponwindowsorhomeBrewonmacos.1.onwindows, downloadandInstallxampp, selectcomponents, startapache, andplaceFilesinhtdocs.2.alternative, secara manualstallphpfromphp.netandsheBerver.3

Dalam PHP, anda boleh menggunakan kurungan persegi atau pendakap keriting untuk mendapatkan aksara indeks spesifik rentetan, tetapi kurungan persegi disyorkan; Indeks bermula dari 0, dan akses di luar julat mengembalikan nilai null dan tidak dapat diberikan nilai; MB_SUBSTR dikehendaki mengendalikan watak multi-bait. Sebagai contoh: $ str = "hello"; echo $ str [0]; output h; dan watak -watak Cina seperti MB_SUBSTR ($ str, 1,1) perlu mendapatkan hasil yang betul; Dalam aplikasi sebenar, panjang rentetan perlu diperiksa sebelum gelung, rentetan dinamik perlu disahkan untuk kesahihan, dan projek berbilang bahasa mengesyorkan menggunakan fungsi keselamatan multi-bait secara seragam.

Tolearnphpeffectively, startbysettingupalocalverenvironmentusingToolsLikexamppandaCodeDitorLikevscode.1) InstallXamppforapa Che, MySql, danPhp.2) UseAcodeeditorForsyntaxSupport.3) testyoursetupwithasimplephpfile.next, learnphpbasicsincludingvariables, ech
