2016-11-23 3 views
-2

Я использую некоторые примеры кода для создания некоторых сценариев обработки форм в PHP, и увидел следующее - или similar- несколько раз:

$protocol = $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 

Если бы я только видел его один раз, я бы предположил, что это была ошибка, но сценарии, которые я пытаюсь изучить, написаны опытными разработчиками.

Почему это необходимо или полезно, чтобы имя переменной было объявлено/присвоено самому себе?

+0

https://davidwalsh.name/php-shorthand-if-else-ternary-operators –

+5

Это двойное назначение не имеет никакого смысла вообще , Мне кажется, что артефакты оставлены глобальным поиском и заменой. И даже если это предназначено для того, чтобы служить какой-либо значащей цели, тогда это ужасный стиль, поскольку теперь мы все можем видеть, что он смущает и поднимает вопросы. – arkascha

+2

@MasivuyeCokile OP адресует начальное двойное назначение, а не тройную операцию. – arkascha

ответ

-2

Множественное присвоение формы $ a = $ b = 0; используется для одновременного присвоения значения нескольким переменным.

+0

... что ужасно :) –

+1

@shivam Я понимаю множественное назначение - вопрос спрашивает, почему дважды присваивать значение одному и тому же имени переменной. – chuffstix

-1

Например, это (странно) код манекена:

$arr = array('banana', 'kiwi', 'apple', 'lemon'); 

$count = $originalCount = count($arr); 

($i=0; $i < $someOtherNumber; $i++){ 
    //some logic 
    $arr[] = itemAddFunction(); //adds stuff 
    $count++; 
} 

//more things to add or subtract of $count 

echo 'total items '.$count; 
echo 'original amount of items '.$originalCount; 
+0

Я не уверен, что вы показываете мне здесь - вы присвоили одно и то же значение двум различным именам переменных. Могли бы вы объяснить? – chuffstix

+0

Вы не меняете, и вы меняете, в конце вы можете сравнить оба. Но поскольку они начинаются как то же значение, вы можете сделать '$ count = $ originalCount = count ($ arr);' вместо '$ count = count ($ arr);' и '$ originalCount = count ($ arr)' – Sitethief

+0

Опять же, я думаю, вы неправильно поняли вопрос: я понимаю множественное назначение, вопрос задает вопрос, есть ли какая-то причина дважды назначить одну и ту же vale одному имени переменной *. – chuffstix

Смежные вопросы