Anda selalu bisa membuat fungsi Anda sendiri untuk itu:
function prepend($string, $chunk){if(!empty($chunk)&& isset($chunk)){return $string.$chunk;}else{return $string;}}
$stringakan menjadi bagian yang ingin Anda tambahkan dan $chunkakan menjadi teks yang Anda inginkan sebagai tambahan di atasnya.
Anda dapat mengatakan bahwa pemeriksaan tersebut opsional, tetapi dengan memilikinya di sana Anda tidak perlu khawatir tentang meneruskan nilai null secara tidak sengaja.
Terima kasih, Anda benar. Ini jelas tidak semudah atau secepat sesuatu yang ada di dalamnya. Silakan salin dan tempel jika itu membantu membuatnya lebih mudah: D
Aaron
7
Jika ada sesuatu !emptyitu juga selalu isset, tidak perlu untuk pemeriksaan ulang ini. Lebih jauh lagi, karena $chunkmerupakan parameter yang diperlukan dari suatu fungsi, ia perlu diteruskan ke fungsi atau PHP akan mengeluh. Ini berarti cek ini dapat disingkat if ($chunk)(untuk melihat apakah itu falsy alias "kosong"). Tapi, jika $chunktidak mengandung apa-apa, toh tidak akan terjadi apa-apa. Jadi seluruh badan fungsi ini bisa disingkat return $string . $chunk. Yang berarti seluruh fungsi ini sangat tidak diperlukan.
menipu
1
Anda dapat mengatur variabel tetapi juga kosong. Misalnya, variabel dengan nilai "" kosong tetapi juga disetel.
Aaron
1
Ya, tapi saya katakan fungsi Anda adalah cara menulis yang sangat bertele-tele $foo . $bar. Saya menantang Anda untuk menemukan kasus penting jika fungsi Anda melakukan sesuatu yang berbeda. :)
menipu
3
Saya tahu ini telah ditanyakan / dijawab beberapa waktu yang lalu, tetapi memberikan jawaban ini karena secara fungsional setara meskipun itu bukan operator penugasan dan tidak ada yang mengomentari penggunaannya untuk penggabungan string umum.
Anda mungkin ingin melihat ke dalam penggunaan keluarga sprintf( dokumentasi ) fungsi untuk penggabungan string. Ini memberikan lebih banyak sanitasi dan kegunaan daripada hanya menggabungkan dua string dengan operator penugasan.
Sayangnya, menurut saya sprintf () tidak secepat concat sederhana. Dan itu pasti juga tidak tampak ramah sintaks. Lihat: stackoverflow.com/q/7147305/2430549
HoldOffHunger
Benar, meskipun tidak yakin bagaimana yang Anda maksud dengan sintaks ramah. Meskipun tidak secepat atau sederhananya seperti penggabungan. sprintfbiasanya digunakan dalam berbagai bahasa. sprintfmemiliki tempat dan tujuan saat menggunakannya. misalnya. casting beberapa nilai atau menerapkan sejumlah input menggunakan sprintf, memberi Anda lebih banyak fungsi daripada penggabungan sederhana saat diperlukan . Lihat: 3v4l.org/8PWil Tapi itu tidak boleh digunakan sebagai pengganti lengkap untuk penggabungan.
fyrye
3
Anda dapat menggabungkan fungsi bawaan substr_replace, di mana argumen $ start dan $ length dapat disetel ke 0, yang menambahkan $ replacement ke $ string dan mengembalikan hasilnya, seperti:
function prepend(& $string, $prefix){
$string = substr_replace($string, $prefix,0,0);}
Saya tidak melihat minat menggunakan substr_replace; melakukan fungsi yang sederhana $string = $prefix.$string;akan melakukan triknya.
Pierre-Olivier Vares
2
Mengubah komentar Blakethepatton menjadi sebuah jawaban (terima kasih), cara untuk melakukannya lebih rapi untuk nama variabel yang lebih panjang adalah dengan menggunakan referensi ke variabel sebagai berikut:
$f =&$foo; $f ="bar{$f}";
Ini akan menghemat pengetikan jawaban dari Eric V. jika nama variabel asli Anda 12 karakter atau lebih.
$foo
ke$bar
, bukannya bersiap$bar
ke$foo
. Hasilnya mirip, tapi saya pikir dia ingin bermutasi$foo
.Jawaban:
Nggak. Tapi Anda bisa melakukannya
sumber
Anda selalu bisa membuat fungsi Anda sendiri untuk itu:
$string
akan menjadi bagian yang ingin Anda tambahkan dan$chunk
akan menjadi teks yang Anda inginkan sebagai tambahan di atasnya.Anda dapat mengatakan bahwa pemeriksaan tersebut opsional, tetapi dengan memilikinya di sana Anda tidak perlu khawatir tentang meneruskan nilai null secara tidak sengaja.
sumber
!empty
itu juga selaluisset
, tidak perlu untuk pemeriksaan ulang ini. Lebih jauh lagi, karena$chunk
merupakan parameter yang diperlukan dari suatu fungsi, ia perlu diteruskan ke fungsi atau PHP akan mengeluh. Ini berarti cek ini dapat disingkatif ($chunk)
(untuk melihat apakah itu falsy alias "kosong"). Tapi, jika$chunk
tidak mengandung apa-apa, toh tidak akan terjadi apa-apa. Jadi seluruh badan fungsi ini bisa disingkatreturn $string . $chunk
. Yang berarti seluruh fungsi ini sangat tidak diperlukan.$foo . $bar
. Saya menantang Anda untuk menemukan kasus penting jika fungsi Anda melakukan sesuatu yang berbeda. :)Saya tahu ini telah ditanyakan / dijawab beberapa waktu yang lalu, tetapi memberikan jawaban ini karena secara fungsional setara meskipun itu bukan operator penugasan dan tidak ada yang mengomentari penggunaannya untuk penggabungan string umum.
Anda mungkin ingin melihat ke dalam penggunaan keluarga
sprintf
( dokumentasi ) fungsi untuk penggabungan string. Ini memberikan lebih banyak sanitasi dan kegunaan daripada hanya menggabungkan dua string dengan operator penugasan.Saya biasanya menggunakan
vsprintf
, karena bekerja dengan array lebih mudah untuk mengelola posisi nilai daripada argumen individu.Juga dengan larik nilai, seseorang dapat dengan mudah
implode
menetapkan kumpulan nilai untuk penggabungan string sederhana.sumber
sprintf
biasanya digunakan dalam berbagai bahasa.sprintf
memiliki tempat dan tujuan saat menggunakannya. misalnya. casting beberapa nilai atau menerapkan sejumlah input menggunakansprintf
, memberi Anda lebih banyak fungsi daripada penggabungan sederhana saat diperlukan . Lihat: 3v4l.org/8PWil Tapi itu tidak boleh digunakan sebagai pengganti lengkap untuk penggabungan.Anda dapat menggabungkan fungsi bawaan
substr_replace
, di mana argumen $ start dan $ length dapat disetel ke 0, yang menambahkan $ replacement ke $ string dan mengembalikan hasilnya, seperti:Contoh penggunaan fungsi helper adalah:
Jika Anda menyukai pemrograman prosedural, itu.
sumber
$string = $prefix.$string;
akan melakukan triknya.Mengubah komentar Blakethepatton menjadi sebuah jawaban (terima kasih), cara untuk melakukannya lebih rapi untuk nama variabel yang lebih panjang adalah dengan menggunakan referensi ke variabel sebagai berikut:
Ini akan menghemat pengetikan jawaban dari Eric V. jika nama variabel asli Anda 12 karakter atau lebih.
Alternatif dalam satu baris:
sumber