Что такое + = используется?

Я думаю, что это глупый вопрос, но я не мог найти его на 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 имеет все эти значения или, скорее, добавляет все значения в $time?

Спасибо

Ответ 1

Он добавляет все эти значения во времени.

something += somethingelse

является ярлыком для

something = something + somethingelse

-Adam

Ответ 2

$time += $diff['hours'];

- это то же самое, что сказать

$time = $time + $diff['hours'];

Ответ 3

a += 2; является эквивалентом a = a + 2;

В свое время с некоторыми языками (особенно очень старыми компиляторами C) компилятор создавал лучший код с первым вариантом. Он теперь крутится, потому что это обычная идиома, и люди привыкли к этому, что это ясно.

Ответ 4

Есть много таких сокращенных операторов в C, С++ на других современных языках.

a -= b;   // a = a - b;
a *= b;   // a = a * b;
a &= b;   // a = a & b;

и т.д. и т.д. и т.д.

Ответ 5

x + = 10 - это просто более короткий способ написать x = x + 10.

В этом случае код находит разницу во времени в часах от структуры разности во времени.

Ответ 6

Оператор ярлыков для $val = $val + $otherval.

Это работает только с числовыми значениями

Ответ 7

Позвольте заменить несколько вещей, чтобы сделать это немного легче понять.

+ = - это то же самое, что и ниже:

$time = $diff['days'] * 24;
$time = $time + $diff['hours'];
$time = $time + ($diff['minutes'] / 60);
$time = $time + (($diff['seconds'] / 60)/60);

Ответ 8

Я просто хотел добавить, что эта информация действительно находится на веб-сайте PHP в разделе operators или, более конкретно, операторы присваивания.

Ответ 9

Кроме того, "a + = b" - выражение, значение которого может быть использовано снова сразу,

(((((a += b) *= c) += d) * e) += f);

намного меньше печатается, чем

a = a + b;
a = a * c;
a = a + d;
a = a * e;
a = a + f;

Ответ 10

Если оба операнда являются массивами, $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
)

Ответ 11

Почему каждое тело идет простым способом, если мы используем + = или - = или любую комбинацию из более чем одного оператора, означает, что мы выполняем некоторые действия самым быстрым способом, например если вы делаете a = a + b здесь компилятор генерирует 2 токена для a и 1 для b, чем добавляет это значение, и сохраняет его бит сложный и трудоемкий процесс но если u do a = + b здесь у нас есть всего 2 токена и его аналогичная бит-мудрая работа, которая работает быстро. для более подробной информации о кодировании на уровне компилятора или работе кода, с которым вы можете связаться по моему идентификатору, который является [email protected]