PHP 데이터 유형의 자동 변환 및 강제 변환

PHP는 PHP 5.x 단계에서는 완전히 약한 유형의 프로그래밍 언어입니다. 약한 타입(weak type)은 변수를 선언할 때 변수의 타입을 명시할 필요가 없다는 것을 의미합니다. 정수 변수를 선언하고 싶습니다. 유형을 앞에 쓴 다음 변수를 작성할 필요가 없습니다.

PHP 7의 성능이 대폭 향상되었습니다. 실제 테스트 결과에 따르면 PHP 7의 성능은 PHP5.6에 비해 거의 200% 향상되었습니다. PHP 7의 어떤 부분에서는 유형을 강제로 지정하거나 유형을 강제로 지정하지 않고 변수를 선언할 수 있습니다.

다음은 강제형변환과 자동형변환에 대해 이야기해보겠습니다.

【암묵적 수준】부울 값의 자동 유형 변환 및 강제 유형 변환에 대한 영어 단어

부울 값의 자동 유형 변환

Automatic 유형 변환 즉, 특정 상황에서 작업에 참여하기 위해 데이터 유형이 자동으로 다른 유형으로 변경됩니다. 자동 유형 변환은 연산 및 판단 중에 특정 값이 자동으로 변환되는 경우 발생합니다.

다음 상황은 Boolean 값 판단 시 자동 형 변환:

정수형의 1,0은 false이고, 그 외 정수값은 모두 true

2, 부동 소수점의 경우 0.0, 부울 값의 경우 false입니다. 소수점 이하 0이 아닌 값이 있는 한 참입니다.

3, 빈 문자열은 false이며, 공백이 있으면 true로 간주됩니다.

문자열에서 4, 0도 false로 처리됩니다. 그 밖의 모든 것은 참입니다

5. 빈 배열도 값이 있는 한 거짓으로 간주됩니다.

6, 비어 있음도 거짓

7, 성공 선언되지 않은 리소스도 거짓

위의 원칙을 결과로 하나씩 실험해 보겠습니다.

정수인 경우 1, 0은 false이고 다른 모든 정수 값은 true입니다.

<?php
//整型的0,换成整型的其他值试试
$bool = 0;
if($bool){
   echo '美女美女我爱你';
}else{
   echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

부동 소수점인 경우 2, 0.0, 부울 값인 경우 false입니다. 소수점 뒤에 0이 아닌 값이 있는 한 참입니다.

<?php
//浮点类型的的0,换成其他值试试
$bool = 0.0;
if($bool){
   echo '美女美女我爱你';
}else{
   echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

3, 빈 문자열은 거짓이며, 공백이 있으면 참으로 간주됩니다.

<?php
//空字符串,中间没有空格哟。实验完加个空格试试
$str = '';
if($str){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

문자열에서 4, 0도 false로 간주됩니다. 그 밖의 모든 것은 참입니다

<?php
//0这个字符串哟,试试其他值看看
$str = '0';
if($str){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

5. 빈 배열도 값이 있는 한 거짓으로 간주됩니다.

<?php
//这个数组当中啥也没放
$arr = array();
if($arr){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

6, 비어 있는 것도 false

<?php
//声明了一个空的变量$bool
$bool = null;
if($bool){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

7, 성공하지 못한 리소스도 false

<?php
//下面这段代码会显示警告,可忽略。暂时只需要对着实验知道效果即可:未声成功的资源也为假
//下面这一块了解意思就行:打开adasfasfasfdsa.txt这个不存在的文件
$res = fopen('adasfasfasfdsa.txt','r');
if($res){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

다른 유형의 자동 유형 변환

작업 중에도 자동 유형 변환이 발생할 수 있습니다. 우리가 요약하는 모든 규칙과 의견은 동일합니다. 먼저 요약하고 그다음 실험합니다.

스칼라 연산만 다음과 같은 자동 유형 변환을 생성합니다.

2015-07-28_55b79dcad98de.png

<?php
//布尔变整型参与运算
$fo = true;
$result = $fo + 10;
//$result 结果为整型的11,因为$fo布尔的true变为了1
//如果$fo的值为0
var_dump($result);
//字符串类型
$str = '419不要爱';
$result = $str + 1;
//结果为420。因为将$str变为了整型的419参与运算
//将419放在字符串中间和结尾试试
var_dump($result);
?>

요약:

불리언 값이 true이고 연산에 참여하면 정수 또는 부동 소수점 1이 됩니다. 불리언 값이 연산에 참여할 때 false이면 정수 또는 부동 소수점 0이 됩니다. 시작 문자열 중 정수형이나 부동소수점형의 문자가 해당 형으로 변환되어 연산에 참여하게 됩니다.

강제형 변환

강제형 변환에는 세 가지 방법이 있습니다. :

1. intval(), floatval(), strval()

3가지 함수를 사용하여 타입 변환을 완료합니다.

2. 변수 앞에 ()를 추가하고 안에 타입을 씁니다. , 변환하고 다른 변수에 할당

3.settype(variable, Type) 수량 자체를 직접 변경
실험해 보겠습니다:

intval(), floatval() , strval() 변환

<?php
    $float = 1.23;
    $result = intval($float);
    //看看结果是不是变了?
    var_dump($result);
    //鸭脖子为整型的5
    $yabozi = 5;
    $re = floatval($yabozi);
    var_dump($re);
    //定义整型的变量
    $yabozi = 23;
    $bian = strval($yabozi);
    //强制变成字符串试试
    var_dump($bian);
?>

변수 앞 ()에 유형을 추가하고 변환하여 다른 변수에 할당

<?php
   //定义一个变量,我们来变化一下试试
   $transfer = 12.8;
   //把浮点变为整型
    $jieguo = (int)$transfer;
    var_dump($jieguo);
   //把浮点变为布尔
   $jieguo = (bool) $transfer;
   var_dump($jieguo);
   //把布尔变整型
   $bool = true;
   $jieguo = (int)$bool;
   var_dump($jieguo);
    //把浮点变数组
   $fo = 250;
   $jieguo = (array)$fo;
   var_dump($jieguo);
   //其他的操作方式,按照文字总结的规律你来试试
?>

settype (변수, 유형) 변수 자체를 직접 변경

<?php
    //定义浮点变为整型
    $fo = 250.18;
   //settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
    settype($fo,'int');
    //输出看看结果
    var_dump($fo);
?>

【해 보세요】 다음은 강제 유형 변환의 특징입니다. 각 항목이 올바른지 실험해 보세요. >

1 .정수형으로 변환하면 정수형 0이 된다

2. 플로팅형으로 변환하면 point이면 부동소수점 값 0

3. 문자열로 변환하면 빈 문자열이 된다''

4. 부동소수점 123.0을 문자열로 변환 문자열 123

이 됩니다. 5. 문자열로 변환된 부동 소수점 123.2는 문자열 123.2

이 됩니다. 6. 부동 소수점이 아무리 커도 제거되고 그 뒤의 값이 됩니다. 소수점은 폐기됩니다

7. 문자열을 정수로 변환할 경우 해당 값이 앞에 있으면 이전 값을 정수형 변환 값으로 가져옵니다.

8.settype(variable,'null'); unset() a 변수와 동일

9.$Target 변수 = (type)$ 작동 변수는 대상 유형만 변경합니다. 변수 , 원래 변수의 유형은 변경되지 않습니다. Settype은 원래 값을 변경합니다.
<?php
      //小可爱,记得自己做实验,验证上面的9点哟
    $t=12.9;
    settype($t,'int');
    var_dump($t);
?>


set 발음: [sɛt]

설명: Set


발음: [taɛp ]

설명: 종류, 방법


<🎜>
지속적인 학습
||
<?php //浮点类型的的0,换成其他值试试 $bool = 0.0; if($bool){ echo '美女美女我爱你'; }else{ echo '凤姐凤姐爱死我,执行假区间咯'; } ?>
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!