php 二目运算,2-PHP

本文详细介绍了PHP中的数据类型转换,包括自动类型转换和强制类型转换,以及如何通过转换函数如intval(), floatval(), strval()和settype()实现。同时涵盖了常量的定义、使用和不同类型的声明。
摘要由CSDN通过智能技术生成

数据变量之间的相互转换:

自动类型转换:

**注:**在PHP中,当不同的数据类型要进行计算时,会首先把不同的类型转换成相同的类型再进行计算,不会改变这些运算数本身的类型,只是改变被求值的方法。

通常只有4种标量类型(integer、float、string、boolean)才能使用自动类型转换。自动转换会遵循按数据长度增加的方向进行,以保证精确度不会降低。

强制类型转换:

和C语言的强制类型转换基本一致,在要转换的变量之前加上用括号括起来的目标类型,但也可以使用具体的转换函数,即是intval()、floatval()、和strval()等,又或是使用settype()函数转换类型。

eg:

$foo=10; //整型变量$foo

$bar=(boolean)$foo; //将整型变量$foo强行转换为布尔型

括号中允许有空格和制表符,允许的强制转换类型如下:

1、(int),(integer)转换为整型。

2、(bool),(boolean)转换为布尔型。

3、(float),(double),(real)转换为浮点型。

4、(string)转换为字符串。

5、(array)转换为数组。

6、(object)转换为对象。

关于函数:

转换函数的使用可以用于获取对应变量的一部分值:

$str="123.45abc"; //声明一个字符串

$int=intval($str); //获取变量$str的整型值123

$flo=floatval($str); //获取变量$str的浮点值123.45

$str=strval(123.45); //获取变量$flo的字符串值“123.45”

在上面的代码中,类型的强制转换都没有改变被转换变量原本的类型,而是将转换得到的新的数据赋值到一个新的变量上去,不会改变原变量的值以及类型。

如果要改变原变量的类型,就可以使用另外一个函数——settype()

eg:

$foo="5bar"; //为变量获取一个字符串的值

$bar=true; //为变量获取一个布尔值

settype($foo,"integer"); //将变量$foo的类型转换为整型,现在是5

settype($bar,"string"); //将变量$bar的类型转换为字符串,现在是"1"

**注意:**当整数转换为浮点型时,精度不会改变。但是当浮点型转换为整型时,会自动舍去小数部分,只保留整数部分。如果一个浮点数超过了整型数字的有效范围,转换结果将是不确定的。而当字符串转缓缓为数字的手,转换之后的数字将会是从字符串开始部分的数值型字符串,科学计数法表示的数字也是数值型字符串。NULL值转换为字符串,就是空字符" "。

变量类型的测试函数使用:

var_dump()函数是用来测试某个表达式的值以及类型的,具体格式如下:

$int=1;

var_dump($int); //会直接输出变量的类型和值

gettype()函数:

如果想要得到一个用于调试且易读懂的类型和表达方式,可以使用gettype()函数,但必须首先给这个函数传递一个变量,它将确定变量的类型,并且返回一个包含名称的字符串。如果变量的类型不是之前的八种变量之一的话,该函数就会返还一个"unknown type"。

is_type()函数:

如果要查看某个类型,不需要使用gettype()函数,而是使用is_type()函数,这个是PHP提供的一些特定测试函数之一。每个函数都使用一个变量作为其参数,并返回true或是false,格式如下:

is_bool():判断是否是布尔值。

is_int():判断是否是整型。

类似的格式还有:is_integer/long/float/double/real/string/array/object/resource/null(),基本就是看英文来识类别。

比较特殊的还有三个函数:

is_scalar():判断是否为一个标量,也就是一个整数、浮点数、布尔型或是字符串。

is_numeric():判断是否是任何类型的数字或是数字字符串。

is_callable():判断是否是有效的函数名。

以上两种函数的使用格式:

$bool=TRUE; //一个布尔型。

$int=12;

echo gettype($bool); //使用gettype()函数通过echo输出变量$bool的类型。

var_dump($bool); //使用var_dump()函数直接输出变量$bool的类型和值。

if(is_int($int)) //使用is_int()函数,通过条件判断,如果变量$int为整型,累加4.

{

$int+=4;

echo "Integer $int"; //打印输出。

}

HTML表单并不传递整数,浮点数或者是布尔值,它们只会传递字符串,想要检测一个字符串是不是数字,可以使用is_numeric()函数。

常量:

定义:

常量是一个简单值的标识符,如同其名称所暗示的,在脚本执行期间一个常量一旦被定义,就不能再改变或者是取消定义。

常量的作用域是全局的,可以在脚本的任何地方声明和访问到常量,这也是在应用上经常选择常量使用的主要原因。

常量和变量都是PHP存储单元,但是常量声明的类型只能是标量数据(boolean、integer、float、string)。

在新版本中不止标量,还有数组等等

不能在常量的前面加上$,否则会不被解析。

常量的定义和使用:

在PHP中,常量是通过define()函数来定义常量的。常量的命名与变量相似,也要遵循PHP的命名规则。常量默认和变量一样大小写敏感, 但不要在常量前面加上$符号。

define()函数的格式如下所示:

boolean define(string name,mixed value[,bool case_insensitive]); //常量定义函数。

以上函数中:

第一个参数(string name)为字符串类型的常量名。第二个参数(bool)为常量的值或是表达式。第三个参数(case_insensitive)是可选的,如果把第三个参数设置为TRUE(即是说:case_insensitive=TRUE),则常数将会定义为不区分大小写。预设是区分大小写的。

如果要检查是否定义了某个常量,可以使用defined()函数。

define("CON_INT",100); //声明一个常量,名为CON_INT,值为整型100

echo CON_INT; //使用常量,输出整型值100。

define("FLO",99.99); //声明一个名为FLO的常量,值为浮点数99.99。

echo FLO; //使用常量,输出浮点值99.99。

define("CONSTANT","Hello world."); //声明一个名为CONSTANT的字符串常量。

echo CONSTANT; //输出字符串

echo Constant; //直接输出Constant,并且返还一个报错信息

define("GREETING","hello",true); //声明一个名为GREETING的字符串常量

echo GREETING; //会输出字符串hello。

echo Greeting; //同样会输出字符串hello,因为在定义常量的时候没有要求对大小写敏感。

if(defined('CONSTANT')) //使用defined()函数来判断函数是否存在,如果存在就会输出下方变量。

{

echo CONSTANT;

}

新版本PHP中对于常量的定义方式:

在PHP5.3.0后,可以使用const这个关键字在类的外部定义常量。

使用格式如下:

define("ONE",1); //定义一个名为ONE的整型常量。

const TWO=ONE*2; //使用const关键字用一个表达式来声明一个变量

在PHP7以后的版本可以使用define()函数来定义一个字符类型的常量,在PHP5.6中只能够通过const语句来确定一个数组常量,而在之前的版本不能将常量设置为数组类型。

const ARRAY=['a','b']; //使用const语句声明一个数组常量。

define("BRR",['a','b']); //使用define()函数来声明一个数组常量。

echo ARRAY[0]; //输出该数组中的第一个量。

标签:转换,常量,函数,字符串,类型,PHP,变量

来源: https://blog.csdn.net/Holl0w_By/article/details/113839562

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值