2-PHP

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

自动类型转换:

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

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

强制类型转换:

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

eg:

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

括号中允许有空格和制表符,允许的强制转换类型如下:
1、(int),(integer)转换为整型。
2、(bool),(boolean)转换为布尔型。
3、(float),(double),(real)转换为浮点型。
4、(string)转换为字符串。
5、(array)转换为数组。
6、(object)转换为对象。

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

<?php
    $str="123.45abc"; //声明一个字符串
	$int=intval($str); //获取变量$str的整型值123
 	$flo=floatval($str); //获取变量$str的浮点值123.45
	$str=strval(123.45); //获取变量$flo的字符串值“123.45”

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

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

eg:

<?php
    $foo="5bar"; //为变量获取一个字符串的值
	$bar=true; //为变量获取一个布尔值
	settype($foo,"integer"); //将变量$foo的类型转换为整型,现在是5
	settype($bar,"string"); //将变量$bar的类型转换为字符串,现在是"1"

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

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

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

<?php
    $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():判断是否是有效的函数名。

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

<?php
    $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()函数。

<?php
    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这个关键字在类的外部定义常量。

使用格式如下:

<?php
    define("ONE",1); //定义一个名为ONE的整型常量。
	const TWO=ONE*2; //使用const关键字用一个表达式来声明一个变量

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

<?php
    const ARRAY=['a','b']; //使用const语句声明一个数组常量。
	define("BRR",['a','b']); //使用define()函数来声明一个数组常量。
	
	echo ARRAY[0]; //输出该数组中的第一个量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值