В чем разница между "и" при создании строк в PHP? - PullRequest
1 голос
/ 26 апреля 2009

Очень простой, но хотел бы знать разницу / последствия для безопасности и т. Д. Использования "против".

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

Ответы [ 3 ]

10 голосов
/ 26 апреля 2009

Существует множество тонких отличий, вам нужно прочитать документацию php , чтобы получить множество деталей, но важными являются:

Двойные кавычки анализируются, тогда как одинарные кавычки являются литералами.

Вы можете использовать переменные, встроенные в двойные кавычки, но не в одинарные.

Хотя есть несколько уловов:

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names
echo "He drank some $beers";   // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
?>

Одиночные кавычки немного быстрее.

9 голосов
/ 26 апреля 2009

Если строка заключена в двойные кавычки, то интерпретируются escape-последовательности, такие как \n, и идентификаторы переменных, такие как $var.

Подробные сведения и примеры см. В руководстве по строкам PHP .

2 голосов
/ 26 апреля 2009

самый большой это. Внутри двойных кавычек вы можете включить переменные, но внутри одинарных кавычек имя переменной будет буквальным:

$var1 = "hello";

// this will echo "hello world"
echo "$var1 world";

// this will echo $var1 world
echo '$var1 world';

Использование двойных кавычек становится чрезвычайно полезным в ряде ситуаций, особенно когда вы помещаете {} вокруг имен переменных. Вот несколько примеров (, конечно, другие могут дать вам больше примеров ):

// array elements
echo "Element 5 is {$myArray[5]}";
echo "Element 2 subelement 3 is {$myArray[2][3]}";
//
// a dynamic key 
$value = "thing";
$someValue = $myArray["some{$value}"]; // returnd $myArray[something]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...