Kode berikut tidak mencetak apa pun:
$bool_val = (bool)false;
echo $bool_val;
Tetapi kode berikut dicetak 1
:
$bool_val = (bool)true;
echo $bool_val;
Apakah ada cara yang lebih baik untuk mencetak 0
atau false
saat $bool_val
ini false
dari menambahkan if
pernyataan?
(bool)
cor berlebihan, Anda tidak perlu bool cor ke bool:(bool) true === true
.echo 0==1;
menghasilkan0
ataufalse
?Jawaban:
Atau jika Anda hanya ingin output ketika itu salah:
sumber
FALSE == ''
. Ini sangat valid dan merupakan bagian dari bahasa lain, termasuk javascript. Yang aneh adalah default FALSE untuk string kosong. Seharusnya default ke 0. Selalu. Terutama karena TRUE akan selalu default ke 1. Ini melanggar aturan utama pemrograman. Pastikan kode Anda konsisten. Ini jelas bug.!! '0'
dievaluasifalse
dalam PHP, itutrue
dalam JS.!! ""
salah dalam JS dan PHP.Ini adalah cara termudah untuk melakukan ini:
atau
Jika argumen kedua tidak benar, itu akan menampilkan hasilnya secara langsung.
sumber
Tidak, karena opsi lain adalah memodifikasi mesin Zend, dan orang akan kesulitan untuk menyebutnya sebagai "cara yang lebih baik".
Edit:
Jika Anda benar-benar ingin, Anda bisa menggunakan array:
sumber
Ini akan mencetak nilai boolean apa adanya, bukan 1/0.
sumber
Coba mengonversi boolean Anda menjadi bilangan bulat?
sumber
Saya suka yang ini untuk mencetaknya
sumber
var_export
menyediakan fungsionalitas yang diinginkan.Ini akan selalu mencetak nilai daripada tidak mencetak apa pun untuk
null
ataufalse
.var_export
mencetak representasi PHP dari argumen yang dilewatinya, hasilnya bisa disalin / ditempelkan kembali ke PHP.Jika Anda ingin mencetak string
"true"
atau"false"
, Anda dapat menggunakan boolean seperti di bawah ini, tetapi waspadalah terhadap kekhasan:sumber
Ini memberi
0
atau1
:Manual PHP: fungsi intval
sumber
Kapan
$var
variabel boolean,true
ataufalse
akan dicetak.sumber
var_export
dalam hal ini akan menggemakan hasilnya dan mengembalikan nol, sehingga var_export mengeluarkantrue || false
, danecho
menggemanull
(''
). Untuk mengembalikan output darivar_export
, Anda harus menyediakan parameter kedua sebagaitrue
.json_encode
adalah opsi yang lebih baik.Anda dapat menggunakan operator ternary
sumber
The
%b
pilihan sprintf () akan mengkonversi boolean ke integer:Jika Anda tidak terbiasa dengan itu: Anda dapat memberikan fungsi ini sejumlah parameter yang arbitrer, sedangkan yang pertama adalah string ouput Anda yang dibumbui dengan string pengganti seperti
%b
atau%s
untuk penggantian string umum.Setiap pola akan diganti oleh argumen dengan urutan:
sumber
json_encode akan melakukannya di luar kotak, tetapi tidak cantik (berlekuk, dll):
... memberi ...
sumber
gunakan pada skrip
sumber
Anda akan melemparkan boolean ke boolean dan mengharapkan bilangan bulat ditampilkan. Ini bekerja untuk
true
tetapi tidak salah. Karena Anda mengharapkan bilangan bulat:sumber