php編程中echo用逗號和用點號連接的區(qū)別,echo逗號_PHP教程
Jul 12, 2016 am 08:55 AMphp編程中echo用逗號和用點號連接的區(qū)別,echo逗號
里面提到了echo 字符串用,比用.連接要好。原因先不說,先來看以下兩句
<?php // 逗號比.更節(jié)省時間? echo '1+5=' . 1+5; echo '1+5=' . 5+1;
結(jié)果是什么?
1+5=6? 1+5=6? —————— 6? 2? —————— 6.6? 6.6? ——————
我只能說echo '5+1=' . 1+5;的結(jié)果是10,所以結(jié)果是6和2.
為什么會這樣.難道在PHP中加法是沒有交換律的?當(dāng)然不是..
我們先不去想為什么.如果我把上面的點號換成逗號試下.
echo '1+5=' , 5+1; //輸出 1+5=6 echo '1+5=' , 1+5; //輸出 1+5=6
可以看出.只有使用逗號我們才可以得到意料中的結(jié)果.
那為什么點號就不行呢?逗號為什么就行呢?
echo ('1+5' . 5)+1; //輸出2
我們給前面的加個括號后.得到的結(jié)果是一樣的.
證明PHP是先連接字符串再進(jìn)行加法計算了.按照從左向右的方向進(jìn)行的.
那么好.既然是先連接的字符串.那么就應(yīng)該是"1+55"了.然后再用這個字符串加上1.那為什么就會輸出2呢?
這個跟PHP中字符串變成數(shù)字的機(jī)制是相關(guān)的.我們來看下面的例子
echo (int)'abc1'; //輸出0 echo (int)'1abc'; //輸出1 echo (int)'2abc'; //輸出2 echo (int)'22abc'; //輸出22
從上面的例子我們可以看出.如果將一個字符串強(qiáng)制轉(zhuǎn)換成一個數(shù)字.PHP會去搜索這個字符串的開頭.如果開頭是數(shù)字就轉(zhuǎn)換.
如果不是就直接返回0.
回到剛才的1+55.既然這個字符串是1+55.所以強(qiáng)制類型轉(zhuǎn)換后就應(yīng)該是1了.在此基礎(chǔ)上加1.當(dāng)然是2了.
為了證明我們的猜想.我們來驗證一下.
echo '5+1=' . 1+5; //輸出10 echo '5+1=' . 5+1; //輸出6 echo '1+5=' . 1+5; //輸出6 echo '1+5=' . 5+1; //輸出2
結(jié)果證明.我們的設(shè)想是正確的.
那么為什么使用逗號就沒有上面的問題了呢?
手冊上說了.用逗號是multiple parameters .
也就是說是多參數(shù).換句話說.
逗號分隔開的就相當(dāng)于是N個參數(shù).也就是說把echo當(dāng)個函數(shù)用.
這樣的話.echo會對每個參數(shù)先進(jìn)行計算.最后再進(jìn)行連接后輸出.所以我們用逗號就不存在上面的問題了:)
php echo manual
<?php // Strings can either be passed individually as multiple arguments or // concatenated together and passed as a single argument echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10); echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";
至于為啥快,可以簡單理解,用.是先拼接在echo,雖然逗號個數(shù)代表echo的調(diào)用次數(shù)(可以這么理解暫時)。
但是拼接的速度要小于echo的速度。
如果深入理解,VLD如下圖。是@tywei大神的圖
上面比下面多了個CONCAT,下面比上面多了個echo。
您可能感興趣的文章:
- php echo 輸出字符串函數(shù)詳解
- PHP學(xué)習(xí)之輸出字符串(echo,print,printf,print_r和var_dump)
- php輸出echo、print、print_r、printf、sprintf、var_dump的區(qū)別比較
- PHP echo,print,printf,sprintf函數(shù)之間的區(qū)別與用法詳解
- php function用法如何遞歸及return和echo區(qū)別
- PHP中echo和print的區(qū)別
- PHP中echo,print_r與var_dump區(qū)別分析
- php中print(),print_r(),echo()的區(qū)別詳解

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

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.

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Untuk mengelakkan rampasan sesi dalam PHP, langkah -langkah berikut perlu diambil: 1. Gunakan HTTPS untuk menyulitkan penghantaran dan set session.cookie_secure = 1 dalam php.ini; 2. Tetapkan atribut kuki keselamatan, termasuk httponly, selamat dan samesite; 3. Panggil session_regenerate_id (benar) apabila pengguna log masuk atau keizinan berubah menjadi berubah menjadi SesiSeId; 4. Hadkan kitaran hayat sesi, konfigurasi GC_MAXLIFETIME dan rekod masa aktiviti pengguna; 5. melarang mendedahkan sessionId ke url, dan tetapkan session.use_only

Anda boleh menggunakan substr () atau mb_substr () untuk mendapatkan aksara n pertama dalam php. Langkah -langkah khusus adalah seperti berikut: 1. Gunakan substr ($ string, 0, n) untuk memintas aksara N yang pertama, yang sesuai untuk aksara ASCII dan mudah dan cekap; 2. Apabila memproses aksara multi-bait (seperti Cina), MB_SUBSTR ($ String, 0, N, 'UTF-8'), dan memastikan bahawa lanjutan MBSTRING diaktifkan; 3. Jika rentetan mengandungi aksara HTML atau Whitespace, anda harus terlebih dahulu menggunakan strip_tags () untuk mengeluarkan tag dan trim () untuk membersihkan ruang, dan kemudian memintasnya untuk memastikan hasilnya bersih.

Terdapat dua cara utama untuk mendapatkan aksara N terakhir rentetan dalam PHP: 1. Gunakan fungsi substr () untuk memintas melalui kedudukan permulaan negatif, yang sesuai untuk aksara tunggal-bait; 2. Gunakan fungsi MB_SUBSTR () untuk menyokong pengekodan berbilang bahasa dan UTF-8 untuk mengelakkan pemotongan aksara bukan bahasa Inggeris; 3. Secara pilihan menentukan sama ada panjang rentetan cukup untuk mengendalikan situasi sempadan; 4. Ia tidak disyorkan untuk menggunakan kaedah kombinasi STRREV () Substr () kerana ia tidak selamat dan tidak cekap untuk aksara multi-bait.

Fungsi urlencode () digunakan untuk menyandikan rentetan ke dalam format selamat URL, di mana aksara bukan alphanumerik (kecuali-, _, dan.) Digantikan dengan tanda peratus diikuti oleh nombor heksadesimal dua angka. Sebagai contoh, ruang ditukar kepada tanda-tanda, tanda seru ditukar kepada!, Dan watak-watak Cina ditukar kepada borang pengekodan UTF-8 mereka. Apabila menggunakan, hanya nilai parameter yang perlu dikodkan, bukan keseluruhan URL, untuk mengelakkan merosakkan struktur URL. Untuk bahagian lain URL, seperti segmen laluan, fungsi Rawurlencode () harus digunakan, yang menukarkan ruang ke. Apabila memproses parameter array, anda boleh menggunakan http_build_query () untuk mengodkan secara automatik, atau memanggil urlencode secara manual () pada setiap nilai untuk memastikan pemindahan data yang selamat. Hanya

Untuk menetapkan dan mendapatkan pembolehubah sesi dalam PHP, anda mesti terlebih dahulu memanggil session_start () di bahagian atas skrip untuk memulakan sesi. 1. Apabila menetapkan pembolehubah sesi, gunakan $ _Session hyperglobal array untuk memberikan nilai kepada kekunci tertentu, seperti $ _Session ['username'] = 'john_doe'; Ia boleh menyimpan rentetan, nombor, tatasusunan dan juga objek, tetapi elakkan menyimpan terlalu banyak data untuk mengelakkan mempengaruhi prestasi. 2. Apabila mendapatkan pembolehubah sesi, anda perlu menghubungi session_start () terlebih dahulu, dan kemudian mengakses array $ _Session melalui kunci, seperti echo $ _Session ['username']; disyorkan untuk menggunakan isset () untuk memeriksa sama ada pembolehubah wujud untuk mengelakkan kesilapan

Kaedah utama untuk mencegah suntikan SQL dalam PHP termasuk: 1. Gunakan pernyataan pra -proses (seperti PDO atau MySQLI) untuk memisahkan kod dan data SQL; 2. Matikan mod preprocessing simulasi untuk memastikan pra -proses yang benar; 3. Penapis dan sahkan input pengguna, seperti menggunakan is_numeric () dan filter_var (); 4. Elakkan secara langsung splicing rentetan SQL dan gunakan parameter mengikat sebaliknya; 5. Matikan paparan ralat dalam persekitaran pengeluaran dan log ralat rekod. Langkah -langkah ini secara komprehensif menghalang risiko suntikan SQL dari mekanisme dan butiran.
