2014-02-17 4 views
2

Мне задали этот вопрос как часть изучения PHP.Как работает. = Работает в этом коде?

Какова конечная стоимость $ a?

$a .= "a"; 
$a .= "b"; 
$a .= "c"; 

Я знаю, что он выводит «ABC», и я понимаю, что «=» является присвоение конкатенации, но я все еще немного неясно, что на самом деле здесь происходит. Когда я удаляю периоды, я получаю «c», что имеет смысл, что он займет последний элемент.

Спасибо за любую ясность.

+0

'$ a =" a ". "b". "c"; ' –

+0

. конкатенации. . = позволяет переназначить с помощью конкатенации. поэтому $ a. = "b"; по существу говорит, что a равно a, но также добавляет «b» –

+0

. Точка - это [оператор конкатенации] (http://www.php.net/manual/en/language.operators.string.php). Прочитать. – poncha

ответ

5
$a .= "a" 

... это сокращение ...

$a = $a . "a" 

В начале $ а пуст.

$a .= "a" 
// now $a == "a" 
$a .= "b" 
// now $a == "a" . "b" == "ab" 
$a .= "c" 
// now $a == "ab" . "c" == "abc" 
+0

Это было отличное описание. Теперь я понимаю. Огромное спасибо. – justinae

3

Да, именно это конкатенация. Следующие две строки эквивалентны.

$a = $a . "a" 
$a .= "a" 
1

При использовании .= в PHP вы практически склеивание строк вместе в одно целое.

Проверьте свой код, вставив его здесь: http://writecodeonline.com/php/

затем написать еще одну строку, чтобы вывести содержимое переменной a

$a .= "a"; 
$a .= "b"; 
$a .= "c"; 
echo $a; 

Конечный результат переменной a является "abc", потому что «а» + "b" + "c" = "abc" - Конкатенация!

Итак, вкратце, подумайте о следующем: переменная a представляет собой просто контейнер ... Когда мы используем оператор присваивания (=), мы удаляем все его содержимое в контейнере и заменяем его новым значением, которое мы присваиваем , поэтому, когда вы использовали =, конечным результатом был символ c. Потому что он продолжал заменять исходное содержимое.

Когда мы используем конкатенацию, .=, мы продолжаем APPEND вместо замены.

0
$a .= "a"; // $a =$a . 'a' ie a= 'a' 
$a .= "b"; // $a =$a . 'b' ie a= 'ab' 
$a .= "c"; // $a =$a . 'c' ie a= 'abc' 
1

Вы не можете использовать $ a. = "A", если $ a не определен. в этом случае вы должны получить предупреждение «Неопределенная переменная» с правильной конфигурацией PHP. Попытайтесь решить эту проблему, чтобы получить какую-либо неожиданную ценность;

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