Penukaran automatik dan penukaran paksa jenis data php

PHP ialah bahasa pengaturcaraan yang ditaip sepenuhnya lemah dalam peringkat PHP 5.x. Jenis yang dipanggil lemah bermakna apabila mengisytiharkan pembolehubah, tidak perlu untuk menentukan jenis pembolehubah. Saya ingin mengisytiharkan pembolehubah integer Saya tidak perlu menulis jenis di hadapan dan kemudian menulis pembolehubah.

Prestasi PHP 7 telah banyak dipertingkatkan. Mengikut keputusan ujian sebenar, prestasi PHP 7 telah dipertingkatkan hampir 200% berbanding dengan PHP5.6. Di sesetengah tempat dalam PHP 7, kita boleh memaksa jenis untuk ditentukan, atau mengisytiharkan pembolehubah tanpa memaksa jenis untuk ditentukan.

Mari kita bincangkan tentang penukaran jenis paksa dan penukaran jenis automatik seterusnya.

【Tacit level】Perkataan bahasa Inggeris untuk penukaran jenis automatik bagi nilai Boolean dan penukaran jenis paksa

Penukaran jenis automatik bagi nilai Boolean

Automatik penukaran jenis , iaitu, jenis data akan bertukar secara automatik kepada jenis lain untuk mengambil bahagian dalam operasi dalam keadaan tertentu. Penukaran jenis automatik berlaku apabila nilai tertentu ditukar secara automatik semasa operasi dan pertimbangan.

Situasi berikut ialah penukaran jenis automatik apabila menilai nilai Boolean:

1, 0 daripada jenis integer adalah palsu dan semua nilai integer yang lain adalah benar

2, 0.0 untuk titik terapung, palsu untuk nilai Boolean. Ia adalah benar selagi terdapat nilai bukan sifar selepas titik perpuluhan.

3, rentetan kosong adalah palsu, selagi ada ruang di dalamnya, ia dianggap benar.

4, 0 dalam rentetan, juga dianggap sebagai palsu. Semua yang lain adalah benar

5, dan tatasusunan kosong juga dianggap palsu Selagi terdapat nilai di dalamnya, ia adalah benar.

6, kosong juga palsu

7, sumber yang belum diisytiharkan berjaya juga palsu

Mari kita uji satu persatu prinsip di atas.

1, 0 untuk integer adalah palsu, semua nilai integer lain adalah benar

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

2, 0.0 untuk titik terapung, palsu untuk nilai Boolean. Ia adalah benar selagi terdapat nilai bukan sifar selepas titik perpuluhan.

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

3, rentetan kosong itu palsu, selagi ada ruang di dalamnya, ia dianggap benar.

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

4, 0 dalam rentetan, juga dianggap palsu. Semua yang lain adalah benar

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

5, dan tatasusunan kosong juga dianggap palsu Selagi terdapat nilai di dalamnya, ia adalah benar.

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

6, kosong juga palsu

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

7, sumber yang tidak berjaya juga palsu

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

Penukaran jenis automatik jenis lain

Penukaran jenis automatik juga boleh berlaku semasa operasi. Ia adalah sama seperti semua peraturan dan pendapat yang kami rumuskan: ringkaskan dahulu, kemudian percubaan.

Hanya operasi skalar akan menghasilkan penukaran jenis automatik berikut:

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);
?>

Ringkasan:

Apabila nilai Boolean true mengambil bahagian dalam operasi, ia akan menjadi integer atau titik terapung 1. Apabila nilai Boolean palsu mengambil bahagian dalam operasi, ia akan menjadi integer atau titik terapung 0. Permulaan rentetan ialah aksara jenis integer atau titik terapung , akan ditukar kepada jenis yang sepadan untuk menyertai operasi

Penukaran jenis paksa

Terdapat tiga kaedah penukaran jenis paksa:

1. Gunakan tiga fungsi berikut untuk melengkapkan penukaran jenis, intval(), floatval(), strval()

2. Tambah () sebelum pembolehubah dan tulis jenis di dalamnya, tukarkannya dan tetapkan kepada pembolehubah lain

3.settype(variable, Type) Tukar kuantiti itu sendiri secara langsung

Mari kita uji:
intval(), floatval(), strval() penukaran

<?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);
?>

sebelum pembolehubah Tambahkan jenis dalam (), tukarkannya dan berikannya kepada pembolehubah lain

<?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(variable, type ) secara langsung menukar pembolehubah itu sendiri

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

【Cubalah】Berikut ialah ciri penukaran jenis paksa Eksperimen dengan setiap item untuk melihat sama ada ia betul:

1 .Jika ditukar kepada jenis integer, ia akan menjadi jenis integer 0

2. Jika ia ditukar kepada titik terapung, ia akan menjadi nilai titik terapung 0

3. Jika ia ditukar kepada rentetan, ia akan menjadi rentetan kosong''

4. Titik terapung 123.0 ditukar kepada rentetan akan menjadi rentetan 123

5. Titik terapung 123.2 ditukar kepada rentetan akan menjadi rentetan 123.2

6. Terapung Tidak kira berapa besar titik perpuluhan, ia akan dikeluarkan dan nilai selepas titik perpuluhan akan dibuang

7. Jika rentetan ditukar kepada integer, jika nilai berada di hadapan, nilai sebelumnya akan dikeluarkan sebagai nilai Penukaran jenis integer.

8.settype(variable,'null'); Setara dengan unset() pembolehubah

9.$Target variable = (type)$ Operasi pembolehubah hanya akan menukar jenis sasaran variable , tidak akan mengubah jenis pembolehubah asal Settype menukar nilai asal

<?php
      //小可爱,记得自己做实验,验证上面的9点哟
    $t=12.9;
    settype($t,'int');
    var_dump($t);
?>

set Sebutan: [sɛt]
Penjelasan: Set

type Sebutan: [taɪp ]
Penjelasan: Jenis, kaedah


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