我认为这是一个愚蠢的问题,但我无法在php上找到它。为什么在以下代码中带有=的+:
function calculateRanking()
{
$created = $this->getCreated();
$diff = $this->getTimeDifference($created, date('F d, Y h:i:s A'));
$time = $diff['days'] * 24;
$time += $diff['hours'];
$time += ($diff['minutes'] / 60);
$time += (($diff['seconds'] / 60)/60);
$base = $time + 2;
$this->ranking = ($this->points - 1) / pow($base, 1.5);
$this->save();
}
这是多少时间有所有这些值,或者更确切地说它是将所有值添加到$ time?
由于
答案 0 :(得分:36)
它将所有这些值添加到时间。
something += somethingelse
是
的快捷方式something = something + somethingelse
- 亚当
答案 1 :(得分:11)
$time += $diff['hours'];
与说
相同$time = $time + $diff['hours'];
答案 2 :(得分:7)
a += 2;
相当于a = a + 2;
曾经使用某些语言(特别是非常古老的C编译器),编译器使用第一个选项生成了更好的代码。它现在很常见,因为它是一种常见的习语,人们习惯于认为它更清晰。
答案 3 :(得分:4)
在其他现代语言中,C,C ++中有很多这些速记运算符。
a -= b; // a = a - b;
a *= b; // a = a * b;
a &= b; // a = a & b;
等等,等等。
答案 4 :(得分:2)
x + = 10只是写x = x + 10的简短方法。
在这种情况下,代码是从时差结构中找出以小时为单位的时差。
答案 5 :(得分:2)
$ val = $ val + $ otherval的快捷键操作符。
这仅适用于数值
答案 6 :(得分:2)
让我们更换一些东西,让它更容易理解。
+ =与下面的相同:
$time = $diff['days'] * 24;
$time = $time + $diff['hours'];
$time = $time + ($diff['minutes'] / 60);
$time = $time + (($diff['seconds'] / 60)/60);
答案 7 :(得分:2)
我只是想补充一点,这些信息实际上是在PHP网站的operators部分,或者更具体地说是assignment operators。
答案 8 :(得分:1)
此外,“a + = b”是一个值,可以立即再次使用,
(((((a += b) *= c) += d) * e) += f);
比
少得多a = a + b;
a = a * c;
a = a + d;
a = a * e;
a = a + f;
答案 9 :(得分:0)
如果两个操作数都是数组,则$a += $b
也是array_merge($a, $b)
的简写。此函数将两个数组合并为一个,丢弃$b
中已经存在的$a
中的任何键。
$arr1 = array(4 => "four", 1 => "one", 2 => "two");
$arr2 = array("three", "four", "five");
$arr1 += $arr2;
print_r ($arr1);
// outputs:
Array
(
[4] => four
[1] => one
[2] => two
[0] => three
)
$arr1 = array(4 => "four", 1 => "one", 2 => "two");
$arr2 = array("three", "four", "five");
$arr2 += $arr1;
print_r ($arr2);
// outputs:
Array
(
[0] => three
[1] => four
[2] => five
[4] => four
)
答案 10 :(得分:0)
根据您的代码
$time += $diff['hours'];
$time += ($diff['minutes'] / 60);
$time += (($diff['seconds'] / 60)/60);
类似于以下内容:-
$time = $time + $diff['hours'];
$time = $time + ($diff['minutes'] / 60);
$time = $time + (($diff['seconds'] / 60)/60);
答案 11 :(得分:-1)
如果我们使用+ =或 - =或者多个运算符的任意组合,为什么每个人都以简单的方式进行,这意味着我们正在以最快的方式执行某些操作 如果你做a = a + b 这里编译器为a生成2个令牌,为b生成1个,然后添加该值并将其存储为复杂且耗时的过程 但如果你做a = + b 这里我们只有2个令牌,它类似于位操作,可以快速工作。有关编译器级别编码或代码工作的更多详细信息,请联系我的ID,即s.sourabh1989@gmail.com