php的要注意的一些小细节和牛角尖

1.单双引号对比

转义

单引号只转义 ’ 和 \ ,其他的不转义

变量解析

双引号里面变量是可以解析的

速度

单引号不需要解析串内有没有变量,需要转义的内容也少,速度快点

heredoc(类似双引号)和newdoc(类似单引号)的区别类似

2.数组注意点

如果不声明键,会从0,1,2,...递增来生成键
array(‘a’,‘b’,‘c’);
如果已存在某一个或者几个数字键,则从最大的数字键开始递增,从左往右开始遇到最大的就重新以最新的max开始
array(3=>‘a’,‘b’,‘c’);
$a = array(2=>‘a’,‘b’,5=>‘c’,‘d’);
$a = array(‘a’,‘b’,3=>‘d’,5=>‘c’,‘e’);
如果键声明重复,后面的值会覆盖前面的值
$a = array(5=>‘a’,‘b’,3=>‘d’,5=>‘c’,‘e’);
键可以是整数,可以是字符串
$a = array(2=>‘a’,2.5=>‘b’); //浮点数会变成整数
$a = array(2=>‘a’, ‘2’=>‘b’); //字符串的内容是整数,会变成整数
$a = array(2=>‘a’,2.5=>‘b’,‘2.5’=>‘c’,‘2’=>‘d’,‘2x’=>‘e’,‘f’);

3.类型的转换

常见的是字符串和数字的转换,
或者 字符串/数字 --> 布尔型的转换
分隐式和强制(显式)转换

字符串-->数字
$a = '12'
$a = $a + 3;
var_dump($a); //15

$a = '12hello'
$a = $a + 3;
var_dump($a); //15

$a = 'hello12hello'
$a = $a + 3;
var_dump($a); //3

$a = '12hello99'
$a = $a + 3;
var_dump($a); //15
规律:从左到右截取,直到碰到不合法的数字,截取出来的部分装换成数字


数字-->字符串
$a = 123;
$a = $a.'hello';
var_dump($a); //123hello

转换成布尔值:
以下值都被当作布尔的假,其他值,都被当作布尔的真
'','0',0,0.0,false,null,array();


整型-->浮点数;
$a = 3200000000; //int
$b = 3200000000; //int
var_dump($a+$b) //float(6400000000)

4.%运算符

$a = 10;
$b = 3;
echo $a % $b; //1

$a = -10;
$b = 3;
echo $a % $b; //-1

$a = -10;
$b = -3;
echo $a % $b; //-1
规则:取模算法的时候,结果的正负仅仅取决于被除数.

5.echo问题

下面那个运行速度更快?
$a = 'hello';
$b = 'world';

echo $a.$b; //helloworld
.是一个拼接的运算
echo $a,$b; //helloworld
这个运行更快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值