여기에있는 다른 솔루션에는 모두주의 사항이 있습니다 (단지 문제를 다루고 있지만). (1) 혼합 유형을 반복하거나 (2) 함수로 내보내거나 유틸리티에 포함 할 수있는 일반 솔루션을 원하는 경우 다른 솔루션은 작동하지 않습니다.
가장 간단하고 자명 한 솔루션은 다음과 같습니다.
// simplest, most-readable
if (is_bool($res) {
$res = $res ? 'true' : 'false';
}
// same as above but written more tersely
$res = is_bool($res) ? ($res ? 'true' : 'false') : $res;
// Terser still, but completely unnecessary function call and must be
// commented due to poor readability. What is var_export? What is its
// second arg? Why are we exporting stuff?
$res = is_bool($res) ? var_export($res, 1) : $res;
그러나 코드를 읽는 대부분의 개발자는 http://php.net/var_export 를 방문 하여 var_export
수행 할 작업과 두 번째 매개 변수가 무엇인지 이해해야합니다 .
1. var_export
Works에 대한 boolean
A와 다른 입력하지만 개종자 모든 string
뿐만 아니라.
// OK
var_export(false, 1); // 'false'
// OK
var_export(true, 1); // 'true'
// NOT OK
var_export('', 1); // '\'\''
// NOT OK
var_export(1, 1); // '1'
2. ($res) ? 'true' : 'false';
부울 입력에 작동하지만 다른 모든 항목 (int, string)을 true / false로 변환합니다.
// OK
true ? 'true' : 'false' // 'true'
// OK
false ? 'true' : 'false' // 'false'
// NOT OK
'' ? 'true' : 'false' // 'false'
// NOT OK
0 ? 'true' : 'false' // 'false'
삼. json_encode()
문자열 이 문자열인지 아니면 부울 인지 알 수 없으므로 같은 문제 var_export
와 아마도 더 나쁜 문제 입니다.json_encode
true