Сегодня я увидел, что Caterpillar для всех сделала различие между пустыми строками и NULL ( http://bbs.phpchina.com/thread-99574-1-2.html ). Я чувствую, что у меня нет четкого понимания основ. знания (такие как я) были очень полезны. Дело было поздно вечером, я по прихоти проверил много "авторитетной информации", написал статью и разместил ее здесь, чтобы помочь всем изучить основы. не строго, и содержание было просто личным резюме, если есть недостатки, пожалуйста, добавьте больше экспертов. Без лишних слов, основной текст выглядит следующим образом:
1. Разница между echo и print.
Функции echo и print в PHP. в основном то же самое (выход), но между ними все же есть тонкие различия. После вывода echo нет возвращаемого значения, но print имеет возвращаемое значение и возвращает false в случае сбоя выполнения. Следовательно, его можно использовать как обычную функцию. Например, после выполнения следующего кода значение переменной $r будет равно 1.
Код:
$r = напечатать «Привет, мир»;
Это означает, что print можно использовать в некоторых сложных выражениях, а echo — нет. Однако, поскольку оператор echo не требует возврата какого-либо значения, оператор echo в коде выполняется немного быстрее, чем оператор печати.
2. Разница между include и require.
Функции include() и require() в основном одинаковы (include), но есть некоторые различия в использовании. include() — это функция условного включения, а require() — функция условного включения. функция безусловного включения. Например, в следующем коде, если переменная $a имеет значение true, будет включен файл a.php:
Код:
if($a){
включить("a.php");
}
Однако метод require() отличается от метода include(). Независимо от значения $a, следующий код включит в файл файл a.php:
Код:
if($a){
требуется("a.php");
}
Что касается обработки ошибок, используйте оператор включения. Если произойдет ошибка включения, программа пропустит оператор включения. Несмотря на то, что сообщение об ошибке будет отображено, программа продолжит выполнение! Но require выдаст вам фатальную ошибку.
Конечно, Цифэнь можно понимать и буквально: требовать означает очень сильную просьбу или просьбу.
3. Операторы require_once() и include_once()
не по теме, поскольку они выглядят одинаково. Простые операторы require_once() и include_once() соответствуют операторам require() и include() соответственно. Операторы require_once() и include_once() в основном используются, когда необходимо включить несколько файлов, что позволяет эффективно избежать ошибки повторного определения функций или переменных, вызванной включением одного и того же фрагмента кода.
4. Разница между пустой строкой ('') и NULL.
В PHP и пустая строка, и NULL хранятся со значением 0, но их типы различаются. Вы можете попробовать echo gettype(''); NULL); Вы обнаружите, что они печатают строку и NULL соответственно. Конечно, 0 также легко спутать. Вы можете попробовать echo gettype(0); вы обнаружите, что тип 0 — целое число (). целое число), видно, что строка (''), NULL и 0 являются «равными значениями», но не равными типами.
5.! Разницу между isset и пустой
можно понять из буквального значения: «пустой» определяет, является ли переменная «пустой», а «иссет» определяет, была ли переменная установлена. Но здесь вы должны обратить внимание на одну вещь: когда значение переменной равно 0, пустая считает, что переменная равна пустой, то есть это эквивалентно отсутствию установки. Например, когда мы обнаруживаем переменную $id, когда $id=0, мы используем пустой и isset, чтобы определить, была ли настроена переменная $id. Оба возвращают разные значения: пустой думает, что он не настроен, а isset может получить. значение $id , посмотрите на пример ниже:
Код? :
$идентификатор=0;
пустой($id)?print "Я пуст":print "Я $id."; //Результат: Я пуст
!isset($id)?print "Я пуст":print "Я $id.";//Результат: Я 0
6. Разница между == (равно) и === (равно)
Посмотрите на разницу между четвертой пустой строкой ("") и NULL выше и давайте рассмотрим пример:
Код:
'' == NULL;
'' === NULL;
Запустив его, вы обнаружите, что первое истинно, а второе ложно! Видно, что == сравнивает только равенство значений, а === не только сравнивает значения, но и сравнивает типы, что более строго.