PHP 개발 중에 유형 변환이 일반적인 작업입니다. 변수를 문자열로 변환하기위한 일반적인 도구로서 Strval 함수는 다른 유형의 값에 대해 다른 성능을 갖습니다. strval을 사용하여 널 값을 처리하면 어떻게됩니까? 특별한주의를 기울여야하는 세부 사항은 무엇입니까? 이 기사는이 문제에 대해 논의 할 것입니다.
strval 함수의 함수는 전달 된 매개 변수를 문자열 유형으로 변환하는 것이며, 함수 시그니처는 다음과 같습니다.
strval(mixed $value): string
모든 유형의 매개 변수를 수신하고 해당 매개 변수의 문자열 표현을 반환합니다.
매개 변수가 null 이면 strval은 비어있는 문자열로 변환합니다.
예는 다음과 같습니다.
<?php
$value = NULL;
$result = strval($value);
var_dump($result); // string(0) ""
?>
출력 결과 :
string(0) ""
즉, NULL은 빈 문자열로 변환됩니다 "" .
내부 유형 변환 규칙은 다음과 같습니다.
NULL은 빈 문자열에 해당하는 문자열로 변환됩니다.
다른 유형의 전환은 해당 규칙에 따라 수행됩니다.
이것은 또한 PHP의 NULL 의 관용적 인 처리로, NULL 값의 직접 출력 또는 스 플라이 싱으로 인한 오류를 피할 수 있도록 개발자가 촉진합니다.
strval (null)은 빈 문자열을 반환하지만 다음 점은 여전히 실제로 사용됩니다.
문자열 연결 장치를 직접 사용하십시오 . NULL을 연결할 때 PHP는 자동으로 NULL을 빈 문자열로 변환합니다.
<?php
$value = NULL;
echo "Value is: " . $value; // 산출 Value is:
?>
따라서 Strval 의 동작은 문자열 연결 작업과 일치합니다.
Echo 또는 Print를 직접 사용하여 NULL을 출력하면 빈 문자열이 출력되며 오류가 발생하지 않습니다.
<?php
$value = NULL;
echo $value; // 不산출任何内容
?>
strval (null)을 사용하여 얻은 빈 문자열 ""는 실제 빈 문자열 변수와 동일합니다.
<?php
var_dump(strval(NULL) === ""); // bool(true)
?>
그러나 NULL 및 빈 문자열은 본질적으로 다른 유형의 값, 특히 엄격한 유형 판단 또는 데이터베이스 작업에서 다른 유형의 값입니다.
배열 또는 일부 객체가 실수로 strval 로 전달되면 경고 또는 오류가 트리거됩니다.
예를 들어:
<?php
$arr = [];
echo strval($arr); // Warning: Array to string conversion
?>
따라서 Strval 에 전달 된 매개 변수가 배열 또는 변환 불가능한 객체가 아닌지 확인하는 것은 좋은 습관입니다.
URL 스 플라이 싱 또는 HTML 출력에 strval (null) 의 결과를 사용하면 빈 문자열이 링크의 누락 된 매개 변수 또는 불완전한 태그 속성을 유발할 수 있습니다. 사전에 기본값을 판단하거나 할당하는 것이 좋습니다.
<?php
// NULL문자열을 돌립니다
$nullValue = NULL;
echo "Using strval: '" . strval($nullValue) . "'\n"; // 산출 ''
// 直接산출NULL
echo "Direct echo: '" . $nullValue . "'\n"; // 산출 ''
// 평등 판사
var_dump(strval($nullValue) === ""); // bool(true)
// 경고 예
$arrayValue = [];
// echo strval($arrayValue); // 경고를 유발합니다:Array to string conversion
?>