php 定义变量的多个数据类型,PHP变量与数据类型

变量命名

变量名可以由字母数字下划线组成,不能使用数字开头

不能使用PHP的关键字

也可以使用中文

变量声明

使用数字开头

$1a = 'a';//报错,Parse error: syntax error, unexpected '1' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$'

变量通常在声明时赋值

$a = 'a';

echo $a;//输出为a

变量只声明不赋值时,默认值为NULL,但是会报错,提示未定义的变量名。

$a;

var_dump($a);//输出为null,会报错:Notice: Undefined variable: a

变量声明关键字var只能用于在类中声明变量,其他情况会报错

//在类外声明

var $a = 'a';//报错:Parse error: syntax error, unexpected 'var' (T_VAR), expecting end of file

//在类中声明

class A

{

var $a = 'a';

}

$A = new A();

echo $A->a;//类外调用,输出a,因此为公共属性

可变变量,当变量存在多个$符号时,PHP会从右向左解析变量

$b = 'a';

$a = 'b';

echo $$b;//输出为b

函数变量,也叫匿名函数,即将函数赋值给一个变量

$a = function(){

echo "a";

};//注意加分号,否则会报错

$a();//函数调用,输出a

数据类型

伪类型 是 PHP 文档里用于指示参数可以使用的类型和值,只用于文档说明使用

1. mixed 说明一个参数可以接受多种不同的(不一定是所有的)类型。

2. number 说明一个参数可以是 integer 或者 float。

3. callback说明参数类型是回调类型

4. array|object 意思是参数既可以是 array 也可以是 object。

5. void 指定函数的返回类型为空,即该函数不返回值。

//下面为伪变量

... 在函数的参数列表中使用,...表示等等的意思。表示该函数接收任意数量的参数。

数据类型

1. 整型

2. 浮点型

3. 字符串型

4. 布尔型

5. 数组

6. 对象

7. 资源

8. 空(null|NULL)

整型:即整数,包含2进制、8进制、10进制、16进制

$binary = 0b11;//2进制

$octal = 011;//8进制

$decimal = 11;//10进制

$hexaDecimal = 0x11;//16进制

var_dump($binary,$octal,$decimal,$hexaDecimal);//3,9,11,17

字符串转整型函数:intval($var,$base)//$val为转换的字符串,$base为转换的进制

//当第一个参数为整型时,第二个参数失效,返回值为该值对应的10进制数值

intval(0x11, 2);//17

//输出结果为【11】的2进制对应的十进制数值3

intval('11',2);//3

//字符串有可能返回 0,取决于字符串最左侧的字符(非数字或0)

intval('0x11');//0

intval('0x11',2);//0

浮点型:即小数,代表小数点可以任意浮动

//浮点型不能进行计算操作或者比较

var_dump(22.23 - 11.11 - 11.11);//理论上应该等于0.01,实际上输出为0.010000000000002

解决方法1:

先取整再整除:var_dump((22.23*100 - 11.11*100 - 11.11*100)/100);//输出为0.01

解决方法2:

使用浮点函数计算:var_dump(floatval(bcsub(bcsub(22.23,11.11,2),11.11,2)));//输出为0.01

字符串:由0或多个字符组成的有效序列

定义方式:

1.使用单引号(不能解析变量)$a = 'a';

2.使用双引号(可以解析变量):$a = "a";

3.使用定界符(从开始标志到结束标志都会当作字符串)

3.1 heredoc 效果与双引号一致

3.2 nowdoc 效果与单引号一致

字符串拼接:

$a = 'a';$b = 'b';

1.使用.符号进行拼接: echo $a.$c;//ab

2.使用双引号拼接: echo "$a$c";//ab

3.使用{}规定要解析的变量:

//不使用{}时

echo "$ab$b";//$ab当成了变量解析,报错,未定义的变量

echo "{$a}b{$b}";//abb

//也可以写成这样

echo "${a}b${b}";//abb

布尔型:true 或 false

//使用双等号进行比较时,以下情况相等

var_dump(0 == false);//0

var_dump(0.0 == false);//空字符串

var_dump("0" == false);//空字符串

var_dump(null == false);//null

var_dump([] == false);//空数组

var_dump("" == false);//空字符串

var_dump('' == false);//空字符串

//负数不等于false

var_dump(-1 == false);//false

//空对象不等于false

var_dump(new stdClass() == false);

数组

定义方式:

1.使用[]:$a = ['a'];

2.使用array: $a = array('a');

分类:

1.索引数组:带有数字索引的数组

2.关联数组:带有指定键的数组

3.多维数组:包含一个或多个数组的数组

对象:是类的实例

简单示例:$obj = new stdClass();

资源:保存了到外部资源的引用的数据类型。常见的有数据库连接句柄、文件句柄等等。

null

值为NULL的几种情况:

1.声明未赋值的变量

2.声明并赋值为null的变量

3.销毁之后的变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值