복붙노트

ToString () PHP에서 이에 상응하는

PHP

ToString () PHP에서 이에 상응하는

PHP 변수의 값을 string으로 변환하려면 어떻게해야합니까?

빈 문자열로 연결하는 것보다 나은 것을 찾고있었습니다.

$myText = $myVar . '';

Java 또는 .NET의 ToString () 메소드와 같습니다.

해결법

  1. ==============================

    1.캐스팅 연산자를 사용할 수 있습니다.

    캐스팅 연산자를 사용할 수 있습니다.

    $myText = (string)$myVar;
    

    boolean과 null에 대한 특별 처리를 포함하여 PHP 매뉴얼의 문자열 섹션에서 문자열 캐스팅과 변환에 대한 자세한 내용이 있습니다.

  2. ==============================

    2.이것은 형변환으로 끝난다 :

    이것은 형변환으로 끝난다 :

    $strvar = (string) $var; // Casts to string
    echo $var; // Will cast to string implicitly
    var_dump($var); // Will show the true type of the variable
    

    클래스에서 __toString이라는 마법 메서드를 사용하여 출력 내용을 정의 할 수 있습니다. 예를 들면 다음과 같습니다.

    class Bottles {
        public function __toString()
        {
            return 'Ninety nine green bottles';
        }
    }
    
    $ex = new Bottles;
    var_dump($ex, (string) $ex);
    // Returns: instance of Bottles and "Ninety nine green bottles"
    

    몇 가지 유형 캐스팅 예 :

    $i = 1;
    
    // int 1
    var_dump((int) $i);
    
    // bool true
    var_dump((bool) $i);
    
    // string "1"
    var_dump((string) 1);
    
  3. ==============================

    3.print_r 사용 :

    print_r 사용 :

    $myText = print_r($myVar,true);
    

    다음과 같이 사용할 수도 있습니다.

    $myText = print_r($myVar,true)."foo bar";
    

    $ myText를 다음과 같이 문자열로 설정합니다.

    array (
      0 => '11',
    )foo bar
    

    var_export를 사용하여 조금 더 많은 정보를 얻으십시오 (변수 유형 포함 ...).

    $myText = var_export($myVar,true);
    
  4. ==============================

    4.typecasting을 사용할 수 있습니다.

    typecasting을 사용할 수 있습니다.

    $var = (string)$varname;
    

    또는 StringValue :

    $var = strval($varname);
    

    또는 SetType :

    $success = settype($varname, 'string');
    // $varname itself becomes a string
    

    그들 모두는 Type-Juggling의 관점에서 같은 일을합니다.

  5. ==============================

    5.값은 (문자열) 캐스트 또는 strval () 함수를 사용하여 문자열로 변환 할 수 있습니다. (편집 : 토마스도 언급했듯이).

    값은 (문자열) 캐스트 또는 strval () 함수를 사용하여 문자열로 변환 할 수 있습니다. (편집 : 토마스도 언급했듯이).

    또한 문자열로 사용할 때 자동으로 캐스팅되어야합니다.

  6. ==============================

    6.당신은 strval을 찾고 있습니다 :

    당신은 strval을 찾고 있습니다 :

  7. ==============================

    7.프리미티브의 경우 (string) $ var를 사용하거나이 변수를 바로 인쇄하십시오. PHP는 동적 유형 지정 언어이며 변수는 즉시 문자열에 캐스트됩니다.

    프리미티브의 경우 (string) $ var를 사용하거나이 변수를 바로 인쇄하십시오. PHP는 동적 유형 지정 언어이며 변수는 즉시 문자열에 캐스트됩니다.

    객체를 문자열로 변환하려면 문자열을 반환하는 __toString () 메서드를 정의해야합니다. 이 메소드는 예외를 throw 할 수 없습니다.

  8. ==============================

    8.큰 따옴표로 묶는 것이 효과가있다.

    큰 따옴표로 묶는 것이 효과가있다.

    $myText = "$myVar";
    
  9. ==============================

    9.출력 버퍼링을 사용하여 변수에서 print_r, var_dump와 같은 출력을 잡을 수 있다는 것을 언급 할 가치가 있다고 생각합니다.

    출력 버퍼링을 사용하여 변수에서 print_r, var_dump와 같은 출력을 잡을 수 있다는 것을 언급 할 가치가 있다고 생각합니다.

    <?php
    ob_start();
    var_dump($someVar);
    $result = ob_get_clean();
    ?>
    

    감사 : https://stackoverflow.com/a/139491/987864

  10. ==============================

    10.또 다른 옵션은 내장 된 settype 함수를 사용하는 것입니다 :

    또 다른 옵션은 내장 된 settype 함수를 사용하는 것입니다 :

    <?php
    $foo = "5bar"; // string
    $bar = true;   // boolean
    
    settype($foo, "integer"); // $foo is now 5   (integer)
    settype($bar, "string");  // $bar is now "1" (string)
    ?>
    

    이것은 실제로 형변환과 달리 변수에 대한 변환을 수행하고 여러 유형으로 변환하는 일반적인 방법을 가질 수있게합니다.

  11. ==============================

    11.Thomas G. Mayfield가 준 답변에 덧붙여 :

    Thomas G. Mayfield가 준 답변에 덧붙여 :

    문자열 주조 매뉴얼에 대한 링크를 따라 간다면 이해해야 할 특별한 경우가 있습니다.

    (문자열) 캐스트는 특히 변수 $ a가 객체 인 경우에 바람직합니다. PHP는 __toString () magic 메소드를 호출하여 객체 모델에 따라 캐스팅 프로토콜을 따를 것이기 때문에 ($ a가 인스턴스화 된 클래스에서 정의 된 경우) ).

    PHP는 비슷한 기능을 수행합니다.

    function castToString($instance) 
    { 
        if (is_object($instance) && method_exists($instance, '__toString')) {
            return call_user_func_array(array($instance, '__toString'));
        }
    }
    

    (문자열) 캐스팅 작업은 코드를 객체 지향적으로 만드는 PHP5 + 프로그래밍에 권장되는 기술입니다. IMO 이것은 Java / C # / etc와 같은 다른 OOP 언어와의 설계 상 유사성 (차이점)의 좋은 예입니다. 즉, 고유하거나 특별한 PHP 방식 (좋은 또는 가치있는 경우) 일 수 있습니다.

  12. ==============================

    12.다른 사람들이 언급했듯이, 객체는 __toString 메서드를 문자열로 형변환해야합니다. 이 메소드를 정의하지 않은 객체는 여전히 spl_object_hash 함수를 사용하여 문자열 표현을 생성 할 수 있습니다.

    다른 사람들이 언급했듯이, 객체는 __toString 메서드를 문자열로 형변환해야합니다. 이 메소드를 정의하지 않은 객체는 여전히 spl_object_hash 함수를 사용하여 문자열 표현을 생성 할 수 있습니다.

    spl_object_hash의 출력이 객체들 사이에서 매우 유사하게 보일 수 있기 때문에 출력을 명확하게 고유하게 만들기 위해 md5 (spl_object_hash ($ this))를 호출하는 디폴트 인 __toString 메소드가있는 기본 Object 클래스가 있습니다.

    이는 변수가 Object로 초기화되고 나중에 코드에서 다른 Object로 변경된 것으로 의심되는 코드를 디버깅하는 데 특히 유용합니다. 로그에 vars를 단순히 출력하면 객체 해시 (또는 해시)의 변경 사항을 알 수 있습니다.

  13. ==============================

    13.의도 한 문자열 변수에 선행 0이있는 경우 위의 모든 메소드가 아니라면 일부는 실패합니다. 즉, 077543 변수가 기본 8 (8 진수)로 변환되기 때문에 그러한 변수를 변환하려는 시도는 의도 한 문자열을 가져 오지 못합니다.

    의도 한 문자열 변수에 선행 0이있는 경우 위의 모든 메소드가 아니라면 일부는 실패합니다. 즉, 077543 변수가 기본 8 (8 진수)로 변환되기 때문에 그러한 변수를 변환하려는 시도는 의도 한 문자열을 가져 오지 못합니다.

    이 모든 것들을 통해 $ str은 32611의 값을 갖게됩니다.

    $no = 077543  
    $str = (string)$no;   
    $str = "$no";   
    $str = print_r($no,true);  
    $str = strval($no);   
    $str = settype($no, "integer");  
    
  14. ==============================

    14.설명서에 다음과 같이 할 수 있다고 나와 있습니다 :

    설명서에 다음과 같이 할 수 있다고 나와 있습니다 :

    $str = "$foo";
    

    그것은 캐스팅과 동일하지만, 더 예쁘게 보인다.

    출처:

  15. ==============================

    15.큰 따옴표도 작동해야합니다 ... 문자열을 작성해야합니다. 그러면 빈 문자열 사이에 $ myVar의 캐스팅 된 STRING 값을 APPEND / INSERT해야합니다.

    큰 따옴표도 작동해야합니다 ... 문자열을 작성해야합니다. 그러면 빈 문자열 사이에 $ myVar의 캐스팅 된 STRING 값을 APPEND / INSERT해야합니다.

  16. ==============================

    16.언제든지 .ToString ($ in)이라는 메서드를 만들면 반환 할 수 있습니다.

    언제든지 .ToString ($ in)이라는 메서드를 만들면 반환 할 수 있습니다.

    $in . '';  
    
  17. ==============================

    17.정수 나 부울과 같은 단순한 유형 이외의 다른 것을 변환하는 경우, 변환하려는 유형에 대한 고유 한 함수 / 메소드를 작성해야합니다. 그렇지 않으면 PHP는 배열 (array), GoogleSniffer , 또는 Bidet).

    정수 나 부울과 같은 단순한 유형 이외의 다른 것을 변환하는 경우, 변환하려는 유형에 대한 고유 한 함수 / 메소드를 작성해야합니다. 그렇지 않으면 PHP는 배열 (array), GoogleSniffer , 또는 Bidet).

  18. ==============================

    18.PHP는 동적으로 입력되므로 Chris Fournier와 같이 "문자열처럼 사용하면 문자열이됩니다." 문자열의 형식에 대한 더 많은 제어를 찾고 있다면 printf가 답입니다.

    PHP는 동적으로 입력되므로 Chris Fournier와 같이 "문자열처럼 사용하면 문자열이됩니다." 문자열의 형식에 대한 더 많은 제어를 찾고 있다면 printf가 답입니다.

  19. ==============================

    19.당신은 또한, var_export PHP 함수를 사용할 수 있습니다.

    당신은 또한, var_export PHP 함수를 사용할 수 있습니다.

  20. ==============================

    20.

    $parent_category_name = "new clothes & shoes" ;
    //TO make it to string option one
    $parent_category = strval($parent_category_name);
    //Or make it string my concatenating it with 'new clothes & shoes' 
    //useful for database queries
    $parent_category = "'".strval($parent_category_name)."'";
    
  21. ==============================

    21.오브젝트의 경우, 형변환 연산자를 사용하지 못할 수도 있습니다. 대신 json_encode () 메서드를 사용합니다.

    오브젝트의 경우, 형변환 연산자를 사용하지 못할 수도 있습니다. 대신 json_encode () 메서드를 사용합니다.

    예를 들어, 다음은 오류 로그에 내용을 출력합니다.

    error_log(json_encode($args));
    
  22. ==============================

    22.stdClass의 텍스트 부분을 문자열 유형으로 변환하는이 작고 이상한 방법을 시도해보십시오.

    stdClass의 텍스트 부분을 문자열 유형으로 변환하는이 작고 이상한 방법을 시도해보십시오.

    $my_std_obj_result = $SomeResponse->return->data; //specific to object/implementation
    
    $my_string_result = implode ((array)$my_std_obj_result); //do conversion
    
  23. ==============================

    23.나는 variableToString을 사용한다.

    나는 variableToString을 사용한다.

    https://github.com/lingtalfi/VariableToString

    모든 PHP 유형을 처리하고 유연합니다 (원하는 경우 확장 할 수 있음).

  24. from https://stackoverflow.com/questions/28098/tostring-equivalent-in-php by cc-by-sa and MIT license