Даже во взятых примерах на просторах интернета порой приходилось менять двойные кавычки на одинарные, ибо ошибка (на выходе).
Попытаюсь очень коротко (т.к. китайцы все же выключили google ..., правда только у себя на родине).
В php строчку можно заключать в одинарные, так и в двойные кавычки. Разница в том, что при использовании двойных кавычек компилятор php будет искать переменные, а в одинарных нет. Пример:
$n = 123;
$s = 'количество';
$result = "$s = $n";
echo $result; //выведет: количество = 123
Также переменные можно вынести (соединить их с строкой оператором конкатенации). На всякий случай, оператор конкатенации - это обычная точка.
$n = 123;
$s = 'количество';
$result = $s . ' = ' . $n;
echo $result; //выведет: количество = 123
Продолжу (ниже код понятен без слов):
$s = "количество сотрудников фирмы "А" не меньше 10 человек"; // не правильно
$s = "количество сотрудников фирмы 'А' не меньше 10 человек"; // правильно
$s = 'количество сотрудников фирмы "А" не меньше 10 человек'; // правильно
Последняя форма записи наиболее правильная. Потому, как php не ищет в строке переменные (следовательно код отработается быстрее). Но "фанатеть" от этого - лишнее. Также, говорить что остальные формы записи не верны - это всё равно, что утверждать: "Сегодня я встал с левой ноги, и поэтому пришел на работу раньше, чем когда я вставал с правой" (хотя одна нога короче другой - это факт. Пример: в лесу люди без ориентира ходят кругами, правда, у одних круг больше чем у других - девчонкам этот факт нравится). Однако если вы работаете с большими объёмами данных - прирост скорости будет существенней. В пределах нескольких строк данный момент можно проигнорировать.
Кавычки можно экранировать. Т.е. можно использовать одинарную кавычку внутри строки, только ее необходмо предварительно экранировать обратной косой чертой (\). Если нужно написать обратную косую черту, тогда надо ее дублировать (\\). Все остальные случаи применения обратной косой черты будут интерпретированы как обычные символы: это означает, что если Вы попытаетесь использовать другие управляющие последовательности, такие как \r или \n, они будут выведены как есть вместо какого-либо особого поведения.
Пример:
$s = 'количество сотрудников фирмы "D\'Art" не меньше 10 человек';
echo $s; // на выходе: количество сотрудников фирмы "D'Art" не меньше 10 человек
Двойные кавычки
Если строка заключена в двойные кавычки, php распознает и управляющие последовательности (специальные символов): \n, \r и т.п.
Далее. В операторе include можно использовать двойные кавычки. А например в операторе count их использовать вообще не надо.
Для размышления. Индекс ассоциативного массива должен быть в кавычках, пример:
$arr['abc'] = 'xxx';
а не
$arr[abc] = 'xxx';
Хотя второй вариант работает, но до определенной поры:
Первая пора - если в коде инициировать константу с аналогичным именем, то результат не станет ожидаемым. Т.е. причина в том, что этот код содержит неопределенную константу (abc), а не строку ('abc' - обратите внимание на кавычки), и php может определить константу, которая будет иметь то же самое имя. А иногда работает, потому что php автоматически преобразует голую строку (не заключенную в кавычки строку, которая не соответствует ни одному из известных символов) в строку, которая содержит голую строку. Например, если константа с именем abc не определена, то php заменит abc на строку 'abc' и использует ее. Однако, это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные, поскольку это помешает php обрабатывать их.
Втора пора - наступает, когда Вы переведете error_reporting() в режим отображения ошибок уровня E_NOTICE (такой как E_ALL), вы увидите эти ошибки. По умолчанию error_reporting установлена их не отображать.
Пример перевода:
<?php
// Давайте покажем все ошибки
error_reporting(E_ALL);
...
?>
В общем много особенностей.