php非运算变量,PHP的变量也不是随意能转化的及bash的算术运算

一直以为PHP的变量是很灵活的,类型想怎么变换就怎么变换。

但实际上并不是这样,当一个变量被赋值为数字时,是变换不了数组的,比如:

以下是代码片段:

[root@localhost shengting]# cat test.php

$a = 454;

$b = 6;

$a['gfgo'] = $b;

var_dump($a);

?>

[root@localhost shengting]# php test.php

PHP Warning:  Cannot use a scalar value as an array in /usr/home/shengting/test.php on line 4

Warning: Cannot use a scalar value as an array in /usr/home/shengting/test.php on line 4

int(454)

从var_dump的结果看,不仅有Warning级的错误,赋值也没有成功。而,如果变量一开始是字符串的话,就没这回事情了:

以下是引用片段:

[root@localhost shengting]# cat test.php

$a = `454`;

$b = 6;

$a['gfgo'] = $b;

var_dump($a);

?>

[root@localhost shengting]# php test.php

sh: 454: command not found

array(1) {

["gfgo"]=>

int(6)

}

可以看出,赋值是成功的。

应该,这个是和存储的类型是有联系的。同样,在Shell的Bash中,所有的变量的值都是以字符串方式存储的。尽管这个特性使得bash的数据处理起来很容易,但是也使得数字运算比较困难。原因就是数字也是以字符串的形式存储的,

在Bash中,如果要对数字进行算术运算和逻辑操作,必须先转化为整数(可视为中间值),得到运算结果后再转化为字符串,以便正确的保存在Bash变量中。

Bash提供了三种方式的数字数据进行算术变量:

以下是引用片段:

1:使用let命令。

2:使用shell扩展 $((expression))

3:使用expr命令

具体用法就不说了,哈哈。偶比较喜欢使用第二种。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值