什么是+ =用于?

时间:2009-02-12 20:02:42

标签: php

我认为这是一个愚蠢的问题,但我无法在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?

由于

12 个答案:

答案 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