ToString () PHP에서 이에 상응하는
PHPToString () PHP에서 이에 상응하는
PHP 변수의 값을 string으로 변환하려면 어떻게해야합니까?
빈 문자열로 연결하는 것보다 나은 것을 찾고있었습니다.
$myText = $myVar . '';
Java 또는 .NET의 ToString () 메소드와 같습니다.
해결법
-
==============================
1.캐스팅 연산자를 사용할 수 있습니다.
캐스팅 연산자를 사용할 수 있습니다.
$myText = (string)$myVar;
boolean과 null에 대한 특별 처리를 포함하여 PHP 매뉴얼의 문자열 섹션에서 문자열 캐스팅과 변환에 대한 자세한 내용이 있습니다.
-
==============================
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.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.typecasting을 사용할 수 있습니다.
typecasting을 사용할 수 있습니다.
$var = (string)$varname;
또는 StringValue :
$var = strval($varname);
또는 SetType :
$success = settype($varname, 'string'); // $varname itself becomes a string
그들 모두는 Type-Juggling의 관점에서 같은 일을합니다.
-
==============================
5.값은 (문자열) 캐스트 또는 strval () 함수를 사용하여 문자열로 변환 할 수 있습니다. (편집 : 토마스도 언급했듯이).
값은 (문자열) 캐스트 또는 strval () 함수를 사용하여 문자열로 변환 할 수 있습니다. (편집 : 토마스도 언급했듯이).
또한 문자열로 사용할 때 자동으로 캐스팅되어야합니다.
-
==============================
6.당신은 strval을 찾고 있습니다 :
당신은 strval을 찾고 있습니다 :
-
==============================
7.프리미티브의 경우 (string) $ var를 사용하거나이 변수를 바로 인쇄하십시오. PHP는 동적 유형 지정 언어이며 변수는 즉시 문자열에 캐스트됩니다.
프리미티브의 경우 (string) $ var를 사용하거나이 변수를 바로 인쇄하십시오. PHP는 동적 유형 지정 언어이며 변수는 즉시 문자열에 캐스트됩니다.
객체를 문자열로 변환하려면 문자열을 반환하는 __toString () 메서드를 정의해야합니다. 이 메소드는 예외를 throw 할 수 없습니다.
-
==============================
8.큰 따옴표로 묶는 것이 효과가있다.
큰 따옴표로 묶는 것이 효과가있다.
$myText = "$myVar";
-
==============================
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.또 다른 옵션은 내장 된 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.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.다른 사람들이 언급했듯이, 객체는 __toString 메서드를 문자열로 형변환해야합니다. 이 메소드를 정의하지 않은 객체는 여전히 spl_object_hash 함수를 사용하여 문자열 표현을 생성 할 수 있습니다.
다른 사람들이 언급했듯이, 객체는 __toString 메서드를 문자열로 형변환해야합니다. 이 메소드를 정의하지 않은 객체는 여전히 spl_object_hash 함수를 사용하여 문자열 표현을 생성 할 수 있습니다.
spl_object_hash의 출력이 객체들 사이에서 매우 유사하게 보일 수 있기 때문에 출력을 명확하게 고유하게 만들기 위해 md5 (spl_object_hash ($ this))를 호출하는 디폴트 인 __toString 메소드가있는 기본 Object 클래스가 있습니다.
이는 변수가 Object로 초기화되고 나중에 코드에서 다른 Object로 변경된 것으로 의심되는 코드를 디버깅하는 데 특히 유용합니다. 로그에 vars를 단순히 출력하면 객체 해시 (또는 해시)의 변경 사항을 알 수 있습니다.
-
==============================
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.설명서에 다음과 같이 할 수 있다고 나와 있습니다 :
설명서에 다음과 같이 할 수 있다고 나와 있습니다 :
$str = "$foo";
그것은 캐스팅과 동일하지만, 더 예쁘게 보인다.
출처:
-
==============================
15.큰 따옴표도 작동해야합니다 ... 문자열을 작성해야합니다. 그러면 빈 문자열 사이에 $ myVar의 캐스팅 된 STRING 값을 APPEND / INSERT해야합니다.
큰 따옴표도 작동해야합니다 ... 문자열을 작성해야합니다. 그러면 빈 문자열 사이에 $ myVar의 캐스팅 된 STRING 값을 APPEND / INSERT해야합니다.
-
==============================
16.언제든지 .ToString ($ in)이라는 메서드를 만들면 반환 할 수 있습니다.
언제든지 .ToString ($ in)이라는 메서드를 만들면 반환 할 수 있습니다.
$in . '';
-
==============================
17.정수 나 부울과 같은 단순한 유형 이외의 다른 것을 변환하는 경우, 변환하려는 유형에 대한 고유 한 함수 / 메소드를 작성해야합니다. 그렇지 않으면 PHP는 배열 (array), GoogleSniffer , 또는 Bidet).
정수 나 부울과 같은 단순한 유형 이외의 다른 것을 변환하는 경우, 변환하려는 유형에 대한 고유 한 함수 / 메소드를 작성해야합니다. 그렇지 않으면 PHP는 배열 (array), GoogleSniffer , 또는 Bidet).
-
==============================
18.PHP는 동적으로 입력되므로 Chris Fournier와 같이 "문자열처럼 사용하면 문자열이됩니다." 문자열의 형식에 대한 더 많은 제어를 찾고 있다면 printf가 답입니다.
PHP는 동적으로 입력되므로 Chris Fournier와 같이 "문자열처럼 사용하면 문자열이됩니다." 문자열의 형식에 대한 더 많은 제어를 찾고 있다면 printf가 답입니다.
-
==============================
19.당신은 또한, var_export PHP 함수를 사용할 수 있습니다.
당신은 또한, var_export PHP 함수를 사용할 수 있습니다.
-
==============================
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.오브젝트의 경우, 형변환 연산자를 사용하지 못할 수도 있습니다. 대신 json_encode () 메서드를 사용합니다.
오브젝트의 경우, 형변환 연산자를 사용하지 못할 수도 있습니다. 대신 json_encode () 메서드를 사용합니다.
예를 들어, 다음은 오류 로그에 내용을 출력합니다.
error_log(json_encode($args));
-
==============================
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.나는 variableToString을 사용한다.
나는 variableToString을 사용한다.
https://github.com/lingtalfi/VariableToString
모든 PHP 유형을 처리하고 유연합니다 (원하는 경우 확장 할 수 있음).
from https://stackoverflow.com/questions/28098/tostring-equivalent-in-php by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP에서 언어 구성과 "내장"기능의 차이점은 무엇입니까? (0) | 2018.09.20 |
---|---|
어떤 $ _SERVER 변수가 안전합니까? (0) | 2018.09.20 |
PHP에서 RecursiveIteratorIterator는 어떻게 작동합니까? (0) | 2018.09.20 |
echo와 print는 PHP에서 어떻게 다릅니 까? [복제] (0) | 2018.09.20 |
어떻게 PHP에서 file_get_contents () 함수의 경고를 처리 할 수 있습니까? (0) | 2018.09.20 |