php的强制类型转换有哪些方法

强制转换方法:1、在要转换的变量前加上用括号括起来的目标类型“(int)”、“(bool)”、“(float)”等,会将其转为相应的类型;2、用类型转换函数“intval(变量)”、“floatval(变量)”、“strval(变量)”等。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

数据类型转换是指将变量或值从一种数据类型转换成其他数据类型。转换的方法有两种,分别是自动类型转换和强制类型转换。

下面本篇文章就来给大家介绍一下PHP的强制类型转换方法

PHP 中的强制类型转换和有两种方式:

  • 可以在要转换的变量之前加上用括号括起来的目标类型(例如$var = (int)3.1415;),

  • 可以使用具体的类型转换函数(例如 intval()、floatval()、strval() 等)或者 settype() 来转换类型。

1、在要转换的变量之前加上用括号括起来的目标类型

括号中允许使用的变量类型如下所示:

  • (int)、(integer):转换成整型;

  • (bool)、(boolean):转换成布尔类型;

  • (float)、(double)、(real):转换成浮点类型;

  • (string):转换成字符串类型;

  • (array):转换成数组类型;

  • (object):转换成对象类型。

示例:

<?PHP
header('content-type:text/html;charset=utf-8');   
$str = '123.456abc';
echo '原变量 $str 的类型为:'.gettype($str).<br>;
$int = (int)$str;
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
$float = (float)$str;
echo '变量 $float 的类型为:' . gettype($float) . '<br>';
$bool = (bool)$str;
echo '变量 $bool 的类型为:' . gettype($bool). '<br>';
$arr = (array)$str;
echo '变量 $arr 的类型为:' . gettype($arr);
?>

1.png

2、使用具体的类型转换函数

  • intval():用于获取变量的整数值;

  • floatval():用于获取变量的浮点值;

  • boolval():用于获取变量的布尔值;

  • strval():用于获取变量的字符串值;

  • settype(变量,type),用于将变量转为指的type类型。

示例1:

<?PHP
header('content-type:text/html;charset=utf-8');   
$str = '123.456abc';
echo '原变量 $str 的类型为:'.gettype($str).<br>;
$int = intval($str);
echo '变量 $int 的类型为:'.gettype($int).'<br>';
$float = floatval($str);
echo '变量 $float 的类型为:'.gettype($float).'<br>';
$bool = boolval($str);
echo '变量 $bool 的类型为:'.gettype($bool);
?>

2.png

示例2:

<?PHP
header('content-type:text/html;charset=utf-8');   
$str = '123.456abc';
echo '原变量的类型为:'.gettype($str).<br>;

settype($str, 'integer');
echo '变量类型变为:'.gettype($str).'<br>';

settype($str, 'boolean');
echo '变量类型变为:'.gettype($str).'<br>';

settype($str, 'null');
echo '变量类型变为:'.gettype($str);
?>

3.png

说明:settype()函数会改变原变量本身;其设置成功时返回 TRUE, 失败时返回 FALSE。

推荐学习:《PHP教程

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...