Pengguguran Kolon Utama dengan Parameter Dinamakan dalam PDOStatement::bindParam()
Dalam PDOStatement::bindParam(), nampaknya lulus parameter bernama tanpa titik bertindih utama (cth., ':name') berfungsi sama dengan memasukkan kolon (cth., 'nama'). Tingkah laku ini mungkin kelihatan membingungkan memandangkan dokumentasi, yang menyatakan bahawa "pengecam parameter" harus menyertakan titik bertindih utama untuk ruang letak yang dinamakan.
Sokongan Rasmi
Pernyataan PDO:: Dokumentasi bindParam() tidak menyatakan secara eksplisit bahawa kolon utama adalah pilihan untuk parameter yang dinamakan. Oleh itu, adalah bijak untuk menganggap bahawa tingkah laku ini tidak disokong secara rasmi dan tidak sepatutnya digunakan dalam kod pengeluaran.
Mekanisme Asas
Walaupun kekurangan dokumentasi rasmi, peninggalan kolon utama nampaknya berfungsi dalam versi PHP seperti 5.3.24 disebabkan oleh mekanisme dalaman. Khususnya, jika titik bertindih tiada, ia ditambah secara automatik pada parameter semasa pelaksanaan PDOStatement::bindParam(). Pembetulan dalaman ini boleh diperhatikan dalam kod sumber PDO (ext/pdo/pdo_stmt.c).
Pengesyoran
Walaupun mungkin untuk menghilangkan kolon terkemuka dalam parameter bernama dalam versi PHP semasa, ia tidak disyorkan. Ketiadaan sokongan rasmi bermakna versi PHP masa hadapan mungkin tidak mengekalkan tingkah laku ini, yang membawa kepada kemungkinan ralat. Oleh itu, amalan terbaik sentiasa untuk memasukkan titik bertindih utama secara konsisten apabila menghantar parameter yang dinamakan kepada PDOStatement::bindParam() untuk keserasian dan kebolehpercayaan maksimum.
Atas ialah kandungan terperinci Adakah Meninggalkan Titik Bertitik Utama dalam PDOStatement::bindParam() Menamakan Parameter sebagai Gelagat yang Disokong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!