Saya memiliki variabel Boolean yang ingin saya konversi menjadi string:
$res = true;
Saya perlu nilai yang dikonversi menjadi format:, "true" "false"
tidak"0" "1"
$converted_res = "true";
$converted_res = "false";
Saya sudah mencoba:
$converted_res = string($res);
$converted_res = String($res);
Tapi itu memberi tahu saya bahwa string
dan String
tidak berfungsi.
Bagaimana cara mengonversi Boolean ini menjadi string dalam format "true"
atau "false"
dalam PHP?
Jawaban:
Solusi paling sederhana:
$converted_res = $res ? 'true' : 'false';
sumber
?:
notasi adalah kode paling sederhana yang kita bisa datang dengan dalam situasi ini.echo '<active>' . $res ? 'true' : 'false' . '</active>';
tidak menghasilkan hasil yang diinginkan,echo '<active>' . ($res ? 'true' : 'false') . '</active>';
tidak.Fungsi var_export mengembalikan representasi string dari variabel, sehingga Anda bisa melakukan ini:
Argumen kedua memberi tahu fungsi untuk mengembalikan string alih-alih menggemakannya.
sumber
Cara lain untuk dilakukan:
json_encode( booleanValue )
sumber
var_export()
lebih sesuai dengan maksud operasi (kecuali ada yang membutuhkan string untuk beberapa JSON, yaitu ;-)Lihat var_export
sumber
edit
sertakan info yang relevan dari tautan ke pos Anda. Meskipun informasi itu berguna, lebih tepat dibiarkan sebagai "Komentar" untuk OP. Semua informasi yang diperlukan dari tautan harus dimasukkan dalam jawaban. 1) Jika tautan tidak dapat dijangkau, pos ini tidak akan berguna. 2) pengunjung tidak perlu mengunjungi tautan eksternal, hanya untuk mencari tahu sendiri. Yang mengatakan, tautan ke dokumentasi, sumber, atau info tambahan sangat dianjurkan. Terima kasih atas kontribusi Anda.Anda menggunakan strval () atau (string) untuk mengkonversi ke string di PHP. Namun, itu tidak mengubah boolean menjadi ejaan aktual "benar" atau "salah" sehingga Anda harus melakukannya sendiri. Berikut ini contoh fungsi:
sumber
$val = true;
kemudianstrval($val)
dan(string) $val
keduanya kembali 1.Solusi lain di sini semua memiliki peringatan (meskipun mereka menjawab pertanyaan di tangan). Jika Anda (1) mengulang tipe campuran atau (2) menginginkan solusi generik yang dapat Anda ekspor sebagai fungsi atau disertakan dalam utilitas Anda, tidak ada solusi lain di sini yang akan berfungsi.
Solusi paling sederhana dan paling jelas adalah:
Tetapi sebagian besar pengembang membaca kode Anda akan memerlukan perjalanan ke http://php.net/var_export untuk memahami apa yang
var_export
dilakukan dan apa param kedua.1.
var_export
Bekerja untuk
boolean
masukan tapi bertobat segala sesuatu yang lain untukstring
juga.2.
($res) ? 'true' : 'false';
Berfungsi untuk input boolean tetapi mengubah segalanya (int, string) menjadi true / false.
3.
json_encode()
Masalah yang sama
var_export
dan mungkin lebih buruk karenajson_encode
tidak dapat mengetahui apakah stringtrue
itu dimaksudkan string atau boolean.sumber
var_export()
tampaknya menjadi yang terbaik untuk penggunaan khusus, terima kasih.var_export(boolval($var), true)
adalah rute cara yang aman untuk mengubah nilai menjadi string "benar" atau "salah".if (is_bool($res) { $res = $res ? 'true' : 'false'; }
<< ini tidak akan berhasil - hilang)
mungkin lebih baik digunakan$result = (is_bool($var) && $var) ? 'true' : 'false';
$value = is_bool($value) ? var_export($value, true) : $value;
Dengan cara ini saya menghidupkan nilai utuh dan hanya mengubah boolean ke representasi string mereka.$res = $res
?? Apakah maksud Anda:$res == $res
? Atau bahkan$res === $res
:?Kenapa tidak melakukan seperti ini ?:
sumber
Bagi saya, saya ingin representasi string kecuali itu
null
, dalam hal ini saya ingin tetap adanull
.Masalah dengan var_export adalah konversi
null
ke string"NULL"
dan juga mengkonversi string kosong ke"''"
, yang tidak diinginkan. Tidak ada solusi mudah yang bisa saya temukan.Ini adalah kode yang akhirnya saya gunakan:
Pendek dan sederhana dan mudah untuk melempar fungsi juga jika Anda mau.
sumber
boolval()
berfungsi untuk tabel rumit di mana mendeklarasikan variabel dan menambahkan loop dan filter tidak berfungsi. Contoh:di mana
$tmp
adalah kunci yang digunakan untuk memindahkan data lain. Di sini, saya ingin tabel menampilkan "Ya" untuk 1 dan tidak ada untuk 0, jadi digunakan(boolval($row['special_case']) ? 'Yes' : '')
.sumber
boolval(some_expression) ? .. : ..
berperilaku berbeda darisome_expression ? .. : ..
?Ini juga berfungsi untuk segala jenis nilai:
kode:
sumber
Diedit berdasarkan pada saran @ sebastian-norr yang menunjukkan bahwa
$bool
variabel mungkin benar0
atau tidak1
. Sebagai contoh,2
putuskantrue
kapan menjalankannya melalui tes Boolean dalam PHP.Sebagai solusi, saya telah menggunakan tipe casting untuk memastikan bahwa kami mengonversi
$bool
ke0
atau1
.Tapi saya harus akui itu ungkapan yang sederhana
$bool ? 'true' : 'false'
itu lebih bersih.Solusi saya yang digunakan di bawah tidak boleh digunakan, LOL.
Inilah mengapa tidak ...
Untuk menghindari pengulangan, array yang berisi representasi string dari Boolean dapat disimpan dalam konstanta yang dapat disediakan di seluruh aplikasi.
sumber
Saya bukan penggemar jawaban yang diterima karena mengubah apa pun yang bernilai false menjadi
"false"
bukan hanya boolean dan sebaliknya.Pokoknya inilah jawaban OTT saya, ia menggunakan
var_export
fungsi.var_export
berfungsi dengan semua tipe variabel kecualiresource
, saya telah membuat fungsi yang akan melakukan cast reguler ke string ((string)
), cast ketat (var_export
) dan pemeriksaan tipe, tergantung pada argumen yang disediakan ..sumber
sumber
isset
tidak perlu di sini. Di php,if
-test adalah salah untuk keduanyanull
danvariable not defined
. Dapat dilakukan$converted_res = ( $res ? 'true' : 'false' );
seperti yang terlihat pada jawaban yang lebih lama.sumber
Hanya ingin memperbarui, dalam PHP> = 5,50 yang dapat Anda lakukan
boolval()
untuk melakukan hal yang samaReferensi di sini .
sumber
(bool) $var;
"<td>" . (boolval($row['special_case']) ? 'Yes' : ' ') . "</td>"
boolval()
sebaliknya, mengubah variabel tipe apa pun menjadi bool, bukan bool menjadi string.