php中的类型转换
我们在PHP开发的过程中绝对会遇到接收到的数据类型和我们想要的数据类型不一样,这时我们就是可以使用PHP类型转换了,今天我们要来讲的就是PHP中的了类型转换,废话不多说了,我们一起来看吧!
转换为整型和浮点数
能转换为整数的类型只包括浮点数、布尔值,字符串和资源。数组、对象不能转换为数值类型。
转换为浮点数时,除了字符串转换为浮点数时有自己的一套规则外,而其他值都是先转换为整数(在能转换为整数的前提下),再转换为浮点数。
当从浮点数转换成整数时,将向下取整(小数部分丢弃)。如果浮点数超出了整数范围,则结果为未定义,因为没有足够的精度给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!
PHP 7.0.0 起,NaN 和 Infinity 在转换成 integer 时,不再是 undefined 或者依赖于平台,而是都会变成零。
字符串(只支持十进制)转换为整数时,从第一个字符开始寻找合法的整数字符直到字符串结尾或遇到非整数字符,将找到的字符转换为整数,若无合法字符,结果为0。
字符串转换为浮点数时,从第一个字符开始寻找合法的浮点数字符直到字符串结尾或遇到非浮点数字符,将找到的字符转换为浮点数,若无合法字符,结果为0。
如果该字符串没有包含 '.','e' 或 'E' 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。
该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。
echo 0+"0xff","\n"; // 0 echo 0+"2.33","\n"; // 2.33 echo 0+"033","\n"; // 33 echo 0+"2e3","\n"; // 2000
null -> 0 true -> 1 false -> 0
将 resource 转换成 integer 时, 结果会是 PHP 运行时为 resource 分配的唯一资源号。
转换为字符串
true -> "1" false -> "" null -> ""
整数或浮点数转换为字符串,直接将数值表示成字符串(十进制、小数点形式)
数组转换为字符串时,结果都是"Array"
对象转换为字符串时,结果都是"Object"
资源转换字符串时,类似"Resource id#1"这样的字符串
转换为布尔值
当其它值转换为布尔值时,只有以下这些值会转换为false,其他的全都转换为true:
整数0
浮点数0.0
字符串"0"
字符串""
空数组(无元素)
空对象(无成员)
NULL(包括尚未设置的变量)
从空标记生成的 SimpleXML 对象
转换为数组
整数、浮点数、布尔值、字符串转换为数组时,得到一个新数组,数组只有一个元素,这就元素的值便是相应的整数、浮点数、布尔值、字符串。
将null转换为数组时,结果是一个空数组:
echo var_dump((array)null); //array(0) { }
显示转换
1.可以在变量前面添加强制类型转换运算符:
(int)(integer) (float)(double)(real) (bool)(boolean) (string) (array) (object)
这种方式并没有改变变量的数据类型,而只是改变了表达式的数据类型。
2.使用settype(var, type)函数
$var = true; settype($var, "integer"); var_dump($var); // int(1)
可见,变量的类型和值都被修改了
3.使用intval()/floatval()/boolval()/strval()系列函数
注意,这些函数并不会修改变量的值
$var = "0xff"; $num = intval($var, 16); var_dump($var); // string(4) "0xff" var_dump($num); // int(255)
如果intval()函数的第一个参数是一个字符串,则可以再提供一个可选的第二参数,以指定字符串中数值的进制。如果不提供此参数,则默认按十进制处理,参数指定为0,则会以字符串的形式自动判断(以0x开头为十六进制。。)
intval()不能用于对象类型
该函数返回一个转换后的整数值,如果转换失败,返回0,如果参数是数组,则非空数组返回1,空数组返回0
boolval()获取参数的布尔值。
floatval()函数的参数只能是标量类型,如整数、浮点数、布尔值、字符串。不能用于数组或对象。
strval()函数的参数只能是标量类型,如整数、浮点数、布尔值、字符串。不能用于数组或对象。
什么情况下不会进行隐式转换
算术运算符的两个操作数都会被转换为数值类型。
字符串连接符的两个操作数都会被转换为字符串类型。
在一个需要字符串的表达式中,会自动转换为string。比如在使用函数 echo 或 print 时,或在一个变量和一个 string 进行比较时,就会发生这种转换。
以上就是 php中的类型转换 的所有内容了,希望对大家有帮助,更多质料请在本站搜索。
相关推荐:
Atas ialah kandungan terperinci php中的类型转换. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
