String PHP dapat ditentukan tidak hanya dalam dua cara, tetapi dalam empat cara.
- String yang dikutip tunggal akan menampilkan hal-hal yang hampir sepenuhnya "apa adanya". Variabel dan sebagian besar urutan pelarian tidak akan ditafsirkan. Pengecualian adalah bahwa untuk menampilkan kutipan tunggal secara literal, Anda dapat menghindarinya dengan garis miring
\'
, dan untuk menampilkan garis miring, Anda dapat menghindarinya dengan garis miring terbalik yang lain\\
( Jadi ya, bahkan satu string yang dikutip pun diuraikan ).
- String kutipan ganda akan menampilkan sejumlah karakter yang lolos (termasuk beberapa regex), dan variabel dalam string akan dievaluasi. Poin penting di sini adalah bahwa Anda dapat menggunakan kurung kurawal untuk mengisolasi nama variabel yang ingin Anda evaluasi . Misalnya katakanlah Anda memiliki variabel
$type
dan Anda inginecho "The $types are"
. Itu akan mencari variabel$types
. Untuk menyiasati penggunaan ini,echo "The {$type}s are"
Anda dapat meletakkan penjepit kiri sebelum atau setelah tanda dolar. Lihatlah parsing string untuk melihat bagaimana menggunakan variabel array dan semacamnya.
- Sintaks string Heredoc bekerja seperti string yang dikutip ganda. Dimulai dengan
<<<
. Setelah operator ini, pengidentifikasi disediakan, lalu baris baru. String itu sendiri mengikuti, dan kemudian pengidentifikasi yang sama lagi untuk menutup kutipan. Anda tidak perlu lepas dari kutipan dalam sintaks ini.
- Sintaks string Nowdoc (sejak PHP 5.3.0) bekerja pada dasarnya seperti string yang dikutip tunggal. Perbedaannya adalah bahwa tidak ada tanda kutip tunggal atau garis miring terbalik harus diloloskan. Nowdoc diidentifikasi dengan
<<<
urutan yangsama denganyang digunakan untuk heredocs, tetapi pengidentifikasi yang berikut dilampirkan dalam tanda kutip tunggal, misalnya<<<'EOT'
. Tidak dilakukan penguraian di nowdoc.
Catatan:
Kutipan tunggal di dalam tanda kutip tunggal dan tanda kutip ganda di dalam tanda kutip ganda harus diloloskan:
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
Kecepatan:
Saya tidak akan terlalu menekankan pada tanda kutip tunggal karena lebih cepat daripada tanda kutip ganda. Mereka mungkin lebih cepat dalam situasi tertentu. Inilah artikel yang menjelaskan satu cara di mana tanda kutip tunggal dan ganda pada dasarnya sama cepatnya sejak PHP 4.3 ( Useless Optimizations
menuju bagian bawah, bagian C
). Juga, halaman tolok ukur ini memiliki perbandingan penawaran tunggal vs ganda. Sebagian besar perbandingannya sama. Ada satu perbandingan di mana tanda kutip ganda lebih lambat dari tanda kutip tunggal.
${variablename}
.\n
, apa pun dalamPHP
kode saya adalah dalam tanda kutip tunggal."
penawaran ganda adalah sesuatu dari masa lalu. Pembaruan telah meningkatkan pemrosesan tanda kutip ganda menjadi lebih cepat, dalam semua kasus ekstrim, hari ini.Hal-hal dievaluasi dalam tanda kutip ganda tetapi tidak secara tunggal:
sumber
$mailbody = 'I want a line break:\nDone.';
adalah menjaga yang\n
hidup. Sedangkan:$mailbody = "I want a line break:\nDone.";
akan menguraikan garis istirahat.$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
Urutan karakter dalam$testWithAsciiAndUtf8Characters
diubah menjadi string dengan huruf nyata.'
Dikutip tunggalCara termudah untuk menentukan string adalah dengan melampirkannya dalam tanda kutip tunggal. Kutipan tunggal umumnya lebih cepat, dan segala sesuatu yang dikutip di dalamnya diperlakukan sebagai string biasa.
Contoh:
"
Kutipan gandaGunakan tanda kutip ganda dalam PHP untuk menghindari penggunaan periode untuk memisahkan kode (Catatan: Gunakan kurung kurawal
{}
untuk memasukkan variabel jika Anda tidak ingin menggunakan.
operator gabungan ( ) dalam string.Contoh:
Apakah ada manfaat kinerja kutipan tunggal vs kutipan ganda di PHP?
Iya. Sedikit lebih cepat untuk menggunakan tanda kutip tunggal.
PHP tidak akan menggunakan pemrosesan tambahan untuk menafsirkan apa yang ada di dalam kutipan tunggal. ketika Anda menggunakan tanda kutip ganda PHP harus mengurai untuk memeriksa apakah ada variabel dalam string.
sumber
\'
untuk keluar dari tanda kutip tunggal untuk digunakan dalam string (atau\\'
untuk menampilkan backslash). Perhatikan bahwa urutan pelarian tradisional, seperti\n
TIDAK akan diuraikan ke karakter baris baru. Dokumentasi PHP tentang stringString yang dikutip tunggal tidak memiliki variabel di dalamnya yang ditafsirkan. String yang dikutip ganda tidak.
Juga, string yang dikutip ganda dapat berisi apostrof tanpa garis miring terbalik, sedangkan string yang dikutip tunggal dapat berisi tanda kutip yang tidak terhapus.
String yang dikutip tunggal lebih cepat saat runtime karena mereka tidak perlu diuraikan.
sumber
Dalam PHP, keduanya
'my name'
dan"my name"
adalah string. Anda dapat membacanya lebih lanjut di manual PHP .Hal yang harus Anda ketahui adalah
Dalam PHP, orang menggunakan kutip tunggal untuk mendefinisikan string konstan, seperti
'a'
,'my name'
,'abc xyz'
, saat menggunakan kutip ganda untuk mendefinisikan string mengandung identifier seperti"a $b $c $d"
.Dan hal lainnya adalah,
lebih cepat dari
tapi
lebih lambat dari
Ini berlaku untuk string lain yang digunakan.
sumber
Contoh kutipan tunggal, ganda, heredoc, dan sekarang
sumber
Dalam PHP, teks kutipan tunggal dianggap sebagai nilai string dan teks kutipan ganda akan menguraikan variabel dengan mengganti dan memproses nilainya.
Di sini, kutipan ganda menguraikan nilai dan kutipan tunggal dianggap sebagai nilai string (tanpa menguraikan
$test
variabel.)sumber
Kedua jenis karakter terlampir adalah string. Satu jenis kutipan mudah digunakan untuk melampirkan jenis kutipan lainnya.
"'"
dan'"'
. Perbedaan terbesar antara jenis-jenis kutipan adalah bahwa referensi pengidentifikasi terlampir diganti untuk di dalam tanda kutip ganda, tetapi tidak di dalam tanda kutip tunggal.sumber
Perbedaan antara menggunakan tanda kutip tunggal dan tanda kutip ganda dalam php adalah bahwa jika kita menggunakan tanda kutip tunggal dalam pernyataan gema maka itu diperlakukan sebagai string. ... tetapi jika kita memasukkan nama variabel dalam tanda kutip ganda maka itu akan menampilkan nilai variabel itu bersama dengan string.
sumber
Di sini beberapa kemungkinan kutip tunggal dan ganda dengan variabel
sumber
Satu hal:
Sangat penting untuk dicatat bahwa garis dengan pengenal penutup Heredoc tidak boleh mengandung karakter lain, kecuali tanda titik koma (;) . Itu berarti terutama bahwa pengidentifikasi mungkin tidak indentasi , dan mungkin tidak ada spasi atau tab sebelum atau setelah titik koma.
Contoh:
sumber
Mungkin saya sedikit terlambat, dan sedikit di luar topik, tapi ini dia:
Anda tidak perlu harus memilih karena konten string Anda antara:
alert("It's \"game\" time.");
ataualert('It\'s "game" time.');
Jika Anda terbiasa dengan penggunaan tanda kutip bahasa Inggris, dan karakter yang tepat untuk tanda kutip, Anda dapat menggunakan tanda kutip ganda atau tunggal, karena itu tidak masalah lagi:
alert("It’s “game” time.");
danalert('It’s “game” time.');
sumber