小编ste*_*eve的帖子

为什么在数组元素发生更改时,按值分配给数组元素的变量(在先前的引用分配之后)会发生变化?

当我运行代码打击时:

$var[0] = 'a';
$tmp = $var;
$var[0] = 'b';
var_dump($tmp); 
Run Code Online (Sandbox Code Playgroud)

输出是:

array(1) { [0]=> string(1) "a" }
Run Code Online (Sandbox Code Playgroud)

当我添加一行如下:

$var[0] = 'a';
$foo = & $var[0]; # added line
$tmp = $var;
$var[0] = 'b';
var_dump($tmp); 
Run Code Online (Sandbox Code Playgroud)

输出变为:

array(1) { [0]=> &string(1) "b" }
Run Code Online (Sandbox Code Playgroud)

如果我$foo通过引用一个数组的元素来赋值变量$var[0],那么$tmp按值赋值给数组的变量$var是否会改变?为什么会这样?

php arrays reference

6
推荐指数
1
解决办法
181
查看次数

字符串转换为数组

我希望通过Case Sensitivity将字符串拆分为数组.喜欢

$str = 'CreateTechBook' 
Run Code Online (Sandbox Code Playgroud)

转换成

 array('Create','Tech', 'Book')
Run Code Online (Sandbox Code Playgroud)

php arrays string

5
推荐指数
1
解决办法
211
查看次数

关于字符串转换为int的性能

如果我有刺痛的话

$str = '515';
Run Code Online (Sandbox Code Playgroud)

我想将它转换为int,更好用

$str = $str * 1;
Run Code Online (Sandbox Code Playgroud)

比用

$str = intval($str);
Run Code Online (Sandbox Code Playgroud)

哪个表现更好?

php string int performance

3
推荐指数
2
解决办法
298
查看次数

为什么0.1 + 0.2-0.3 = 5.5511151231258E-17在php中

可能重复:
PHP浮点计算的准确性

当我在eclipse中执行下面的代码时,结果不是0而是5.5511151231258E-17

$a = 0.1+0.2-0.3;
echo $a;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么?

php floating-point precision

2
推荐指数
1
解决办法
1481
查看次数

2
推荐指数
1
解决办法
629
查看次数

为什么后增量运算符($ j ++)永远不会从0改变$ j?

我遇到了一个增量运算符的奇怪问题.下面的代码应该输出什么?

$j = 0;
for ($i=0; $i<100; $i++)
{
    $j = $j++;
}
echo $j;
Run Code Online (Sandbox Code Playgroud)

它回应0.为什么不是100?


编辑:当我改为$j = $j++$j = ++$j,它回应100.

php increment

2
推荐指数
2
解决办法
1495
查看次数