>  기사  >  백엔드 개발  >  PHP에는 어떤 유형의 캐스트가 있습니까?

PHP에는 어떤 유형의 캐스트가 있습니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-22 10:29:313036검색

PHP 강제 변환 유형은 다음과 같습니다. 1. 정수 유형으로 변환 2. 부동 소수점 유형으로 변환 4. 문자열로 변환 6. 객체로 변환

PHP에는 어떤 유형의 캐스트가 있습니까?

PHP 강제 유형은 다음과 같습니다.

PHP의 유형 강제는 C의 유형 강제와 매우 유사합니다. 변환할 변수 앞에 대상 유형을 괄호 안에 추가합니다.转 허용되는 변환은 다음과 같습니다:

    (int), (INTEGER) - 정수로 변환(BOOL), (BOOLEAN) -This -Float(Double), Double ),(real)로 변환 - 변환 부동 소수점 유형
  • (문자열) - 문자열로 변환
  • (배열) - 배열로 변환
  • (객체)                                              ~                                                          with with with with with my eye on, 개체로 변환 중입니다
  • 참고 괄호 안에 공백과 탭이 허용됩니다
  • settype(var, string 유형 혼합)을 사용하여 강제 변환할 수도 있습니다.

  • 1 부울 값으로 강제 변환(bool)|(boolean)

  • 명시적으로 값을 부울로 변환하려면 (bool) 또는 (boolean)을 사용하여 캐스팅하세요. 그러나 많은 경우 연산자, 함수 또는 흐름 제어에 부울 매개변수가 필요한 경우 값이 자동으로 변환되므로 캐스팅이 필요하지 않습니다.

부울로 변환되면 다음 값은 FALSE로 간주됩니다.

부울 값 FALSE

정수 값 0(영) 부동 소수점 값 0.0(영)

빈 문자열 및 문자열 "0"

Array 멤버 변수가 없는

셀이 없는 객체(PHP 4에만 해당)

특수 유형 NULL(아직 설정되지 않은 변수 포함)

다른 모든 값은 TRUE로 간주됩니다(모든 리소스 포함).

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>

2. int로 변환(int)|(integer)

값을 명시적으로 정수로 변환하려면 (int) 또는 (integer) 변환을 사용하세요. 그러나 대부분의 경우 연산자, 함수 또는 흐름 제어에 정수 인수가 필요한 경우 값이 자동으로 변환되므로 캐스팅이 필요하지 않습니다. intval() 함수를 사용하여 값을 정수 유형으로 변환할 수도 있습니다.

a. bool에서 변환

b. 부동 소수점 숫자에서 변환, 반올림, 결과가 불확실함

c. 문자열에서 숫자로 변환 d를 먼저 참조하세요. bool 값으로 변환한 다음 변환

알 수 없는 분수를 정수로 변환하지 마세요. 때로는 예상치 못한 결과가 발생할 수 있습니다.

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7
?>
$str = "123.456abc7"; // (int)123
echo (int)$str;
$str = "abc123.456";   // (int)0
$str = true;           // (int)1
$str = false;          // (int)0

3. 부동 소수점 유형으로 강제 변환 (int)|(double)|(real)|doubleval()|floatval()|intval()

정밀도: 0.12345678901234 // Double과 실수는 동일합니다

데이터의 누락된 매개변수 문자열을 숫자 값으로 변환

4. 문자열로 강제 변환(string) | strval()

은 (string) 또는 strval()로 표시할 수 있습니다. > 함수 값을 문자열로 변환합니다. 표현식에 문자열이 필요한 경우 문자열 변환은 표현식 범위 내에서 자동으로 수행됩니다. 예를 들어 echo() 또는 print() 함수를 사용하거나 변수 값을 문자열과 비교할 때입니다.

부울 값 TRUE는 문자열 "1"로 변환되고, FALSE 값은 ""(즉, 빈 문자열)로 표시됩니다. 이를 통해 부울과 문자열을 마음대로 비교할 수 있습니다.

정수 또는 부동 소수점 값을 문자열로 변환할 때 문자열은 이러한 값을 나타내는 숫자 문자로 구성됩니다(부동 소수점 숫자에도 지수 부분이 포함됩니다).

배열은 "Array"라는 문자열로 변환되므로 echo() 또는 print() 함수를 통해 배열의 내용을 출력할 수 없습니다. 더 많은 팁을 보려면 아래를 참조하세요. strval() 函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用 echo() 或者 print() 函数时,或者将一个变量值与一个字符串进行比较的时候。

  • 布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。

  • 整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。

  • 数组将被转换成字符串 "Array",因此无法通过 echo() 或者 print() 函数来输出数组的内容。请参考下文以获取更多提示。

  • 对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数 get_class()。自 PHP 5 起,如果合适可以用 __toString() 方法。

  • 资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数 get_resource_type()。

  • NULL 将被转换成空字符串。

正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数 print_r()var_dump()

🎜🎜객체가 "Object"라는 문자열로 변환됩니다. 디버깅 목적으로 개체의 멤버 변수를 인쇄해야 하는 경우 아래를 읽어보세요. 객체가 첨부된 클래스의 이름을 얻으려면 get_class() 함수를 사용하십시오. PHP 5부터는 적절한 경우 __toString() 메서드를 사용할 수 있습니다. 🎜🎜🎜🎜리소스 유형은 항상 "리소스 ID #1" 형식의 문자열로 변환됩니다. 여기서 1은 런타임 시 PHP가 리소스에 할당한 고유 식별자입니다. 자원 유형을 얻으려면 get_resource_type() 함수를 사용하십시오. 🎜🎜🎜🎜NULL은 빈 문자열로 변환됩니다. 🎜🎜🎜🎜위에 표시된 것처럼 배열, 개체 또는 리소스를 인쇄하는 것은 값 자체에 대한 유용한 정보를 제공하지 않습니다. 디버깅을 위해 값을 인쇄하는 더 나은 방법인 print_r()var_dump() 함수를 참조하세요. 🎜

PHP 값을 문자열로 변환하여 영구적으로 저장할 수 있습니다. 이 방법을 직렬화라고 하며 serialize() 함수를 사용하여 수행할 수 있습니다. PHP를 설치할 때 WDDX 지원을 설정하면 PHP 값을 XML 구조로 직렬화할 수도 있습니다.

5. 배열로 변환

정수, 부동 소수점, 문자열, 부울 및 리소스에 대해 값을 배열로 변환하면 요소가 하나만 있는 배열을 얻게 됩니다. ), 요소는 이 스칼라의 값입니다.

객체를 배열로 변환하면 결과 배열의 요소는 객체의 속성(멤버 변수)이고 해당 키 이름은 멤버 변수 이름입니다.

NULL 값을 배열로 변환하면 빈 배열이 생성됩니다.

6. 개체로 변환

개체를 개체로 변환해도 아무런 변화가 없습니다.

다른 유형의 값이 객체로 변환되면 내장 클래스 stdClass의 인스턴스가 생성됩니다.

값이 NULL이면 새 인스턴스가 비어 있습니다. 배열을 객체로 변환하면 키가 해당 값을 가진 속성 이름이 됩니다.

다른 값의 경우 scalar라는 멤버 변수에는

7 값이 포함됩니다. 리소스로 변환(변환할 수 없음)

리소스 유형 변수는 열린 파일, 데이터베이스 연결, 그래픽 캔버스 영역 등에 대해 저장되므로 . 특수 핸들이므로 다른 유형의 값을 리소스로 변환할 수 없습니다.

참고

  • HTML 양식은 정수, 부동 소수점 숫자 또는 부울 값을 전달하지 않고 문자열만 전달합니다. 문자열이 숫자인지 확인하려면 is_numeric() 함수를 사용할 수 있습니다.

  • 변수 $x가 정의되지 않은 경우 if($x)와 같은 사용은 E_NOTICE 수준 오류를 발생시킵니다. 따라서 비어 있는

사용을 고려해 볼 수 있습니다. 관련 학습 권장 사항: 초보부터 마스터까지 PHP 프로그래밍

위 내용은 PHP에는 어떤 유형의 캐스트가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.