programing

부울을 문자열로 변환하는 방법

firstcheck 2022. 10. 2. 22:54
반응형

부울을 문자열로 변환하는 방법

문자열로 변환할 부울 변수가 있습니다.

$res = true;

변환된 값이 다음 형식이어야 합니다."true" "false",것은 아니다."0" "1"

$converted_res = "true";
$converted_res = "false";

시도했습니다.

$converted_res = string($res);
$converted_res = String($res);

하지만 그것은 나에게 말해준다string그리고.String인식된 기능이 아닙니다.
이 부울을 다음 형식의 문자열로 변환하려면 어떻게 해야 합니까?"true"또는"false"PHP로요?

가장 심플한 솔루션:

$converted_res = $res ? 'true' : 'false';

var_export 함수는 변수의 문자열 표현을 반환하므로 다음과 같은 작업을 수행할 수 있습니다.

var_export($res, true);

두 번째 인수는 문자열을 에코하는 대신 반환하도록 함수에 지시합니다.

또 다른 방법:json_encode( booleanValue )

echo json_encode(true);  // string "true"

echo json_encode(false); // string "false"

// null !== false
echo json_encode(null);  // string "null"

"var_export" 참조

strval() 또는 (string)을 사용하여 PHP에서 문자열로 변환합니다.단, 부울을 "true" 또는 "false"의 실제 철자로 변환하지 않으므로 직접 변환해야 합니다.다음은 함수의 예를 제시하겠습니다.

function strbool($value)
{
    return $value ? 'true' : 'false';
}
echo strbool(false); // "false"
echo strbool(true); // "true"

여기의 다른 솔루션에는 모두 경고가 있습니다(단, 당면한 문제에 대응하고 있습니다).(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

기능하는 것boolean입력하지만 다른 모든 것을 로 변환합니다.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, 문자열)을 true/false로 변환합니다.

// OK
true ? 'true' : 'false' // 'true'
// OK
false ? 'true' : 'false' // 'false'
// NOT OK
'' ? 'true' : 'false' // 'false'
// NOT OK
0 ? 'true' : 'false' // 'false'

3. json_encode()

과 같은 문제var_export그리고 아마 그 이후로는 더 악화될 것이다json_encode문자열인지 아닌지는 알 수 없다true문자열 또는 부울을 의도했습니다.

왜 이렇게 하지 않는 거죠?

if ($res) {
    $converted_res = "true";
}
else {
    $converted_res = "false";
}

저는 현악기 표현을 하고 싶었어요.null이 경우, 나는 그것이 남아 있기를 바랐다.null.

var_export의 문제는 변환된다는 것입니다.null끈에 꿰어서"NULL"빈 문자열도 변환됩니다."''"이는 바람직하지 않습니다.내가 찾을 수 있는 쉬운 해결책은 없었다.

이것이 내가 마침내 사용한 코드입니다.

if (is_bool($val)) $val ? $val = "true" : $val = "false";
else if ($val !== null) $val = (string)$val;

짧고 심플하며, 원하는 기능을 쉽게 넣을 수 있습니다.

@sebastian-norr의 제안에 따라 편집됩니다.$bool변수는 참일 수도 있고 아닐 수도 있습니다.0또는1.예를들면,2로 해결하다.truePHP의 부울 테스트를 통해 실행할 때 사용합니다.

그 해결책으로, 나는 활자 주물을 사용해 우리가 변환될 수 있도록 했다.$bool로로 합니다.0 ★★★★★★★★★★★★★★★★★」1.
합니다.$bool ? 'true' : 'false'훨씬 깨끗해졌어요

아아내 、 LOL 。
★★★★★★★★★★★★★★★★★...

반복을 피하기 위해 부울 문자열 표현을 포함하는 배열을 애플리케이션 전체에서 사용할 수 있는 상수로 저장할 수 있습니다.

// Make this constant available everywhere in the application
const BOOLEANS = ['false', 'true'];

$bool = true;
echo BOOLEANS[(bool)  $bool]; // 'true'
echo BOOLEANS[(bool) !$bool]; // 'false'

boolval()는 변수 선언 및 루프 및 필터 추가가 기능하지 않는 복잡한 테이블에 대해 기능합니다.★★★★

$result[$row['name'] . "</td><td>" . (boolval($row['special_case']) ? 'True' : 'False') . "</td><td>" . $row['more_fields'] = $tmp

서 ''는$tmp는 다른 입니다.에 1은 Yes, 0은 Nothing으로 했습니다.(boolval($row['special_case']) ? 'Yes' : '').

이것은, 어떠한 종류의 가치에도 유효합니다.

$a = true;

echo $a                     // outputs:   1
echo value_To_String( $a )  // outputs:   true

코드:

function valueToString( $value ){ 
    return ( !is_bool( $value ) ?  $value : ($value ? 'true' : 'false' )  ); 
}

는 틀린 되는 것은 이든 못못 anything i i anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything anything it it answer answer anything로 변환되기 "false"눈에 띄다

어쨌든 내 수술실이야정답, 기능을 사용합니다.

var_export 、 works works except except except except except except except except except except except except except except except except except except except except except except를 제외한 모든 기능합니다.resource(string) 출연자출연자)var_export) 및 타입 체크는 지정된 인수에 따라 달라집니다.

if(!function_exists('to_string')){

    function to_string($var, $strict = false, $expectedtype = null){

        if(!func_num_args()){
            return trigger_error(__FUNCTION__ . '() expects at least 1 parameter, 0 given', E_USER_WARNING);
        }
        if($expectedtype !== null  && gettype($var) !== $expectedtype){
            return trigger_error(__FUNCTION__ . '() expects parameter 1 to be ' . $expectedtype .', ' . gettype($var) . ' given', E_USER_WARNING);
        }
        if(is_string($var)){
            return $var;
        }
        if($strict && !is_resource($var)){
            return var_export($var, true);
        }
        return (string) $var;
    }
}

if(!function_exists('bool_to_string')){

    function bool_to_string($var){
        return func_num_args() ? to_string($var, true, 'boolean') : to_string();        
    }
}

if(!function_exists('object_to_string')){

    function object_to_string($var){
        return func_num_args() ? to_string($var, true, 'object') : to_string();        
    }
}

if(!function_exists('array_to_string')){

    function array_to_string($var){
        return func_num_args() ? to_string($var, true, 'array') : to_string();        
    }
}
$converted_res = isset ( $res ) ? ( $res ? 'true' : 'false' ) : 'false';
function ToStr($Val=null,$T=0){

    return is_string($Val)?"$Val"
    :
    (
        is_numeric($Val)?($T?"$Val":$Val)
        :
        (
            is_null($Val)?"NULL"
            :
            (
                is_bool($Val)?($Val?"TRUE":"FALSE")
                :
                (
                    is_array($Val)?@StrArr($Val,$T)
                    :
                    false
                )
            )
        )
    );

}
function StrArr($Arr,$T=0)
{
    $Str="";
    $i=-1;
    if(is_array($Arr))
    foreach($Arr AS $K => $V)
    $Str.=((++$i)?", ":null).(is_string($K)?"\"$K\"":$K)." => ".(is_string($V)?"\"$V\"":@ToStr($V,$T+1));
    return "array( ".($i?@ToStr($Arr):$Str)." )".($T?null:";");
}

$A = array(1,2,array('a'=>'b'),array('a','b','c'),true,false,ToStr(100));
echo StrArr($A); // OR ToStr($A) // OR ToStr(true) // OR StrArr(true)

정수로 변환한 다음 문자열로 변환하면 어떨까요?

$ php -a
Interactive mode enabled

php > $a = true;
php > $b = false;
php > $c = (string)(int)$a;
php > $d = (string)(int)$b;
php > var_dump($c);
string(1) "1"
php > var_dump($d);
string(1) "0"
php >

부울을 직접 문자열로 변환하면 어떻게 됩니까?

$ php -a
Interactive mode enabled

php > $a = true;
php > $b = false;
php > $c = (string)$a;
php > $d = (string)$b;
php > var_dump($c);
string(1) "1"
php > var_dump($d);
string(0) ""
php >

false string은 빈 합니다."".

이것을 시험해 보세요.

 $value = !is_bool($value) ? $value : ( $value ? "true" : "false");

업데이트하려고 합니다. PHP > = 5.50에서 다음을 수행할 수 있습니다.boolval() 일을

여기서 참조하세요.

언급URL : https://stackoverflow.com/questions/2795177/how-to-convert-boolean-to-string

반응형