Привет, у меня есть простой php/html:
<?php
if( $_POST["name"] || $_POST["age"] )
{
echo "Welcome ". $_POST['name']. "<br />";
echo "You are ". $_POST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action="<?php $_PHP_SELF ?>" method="POST">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
Я не понимаю, почему во второй строке мы используем двойные кавычки, то есть $_POST["name"]
но в выражении echo мы используем $ _POST ['name'], может кто-нибудь сказать мне, почему это разные? Полностью новый для PHP...
Неважно, какие цитаты вы выберете. Есть несколько дискуссий о производительности. Действительно, двойные кавычки немного медленнее. Но разница минимальна даже при 100, 000+ итерациях.
Единственные различия - это концентрация и побег:
Двойные кавычки:
$b = 1;
echo "Test ".$b; // outputs Test 1
echo "Test $b"; // also outputs Test 1
Одиночные кавычки:
$b = 2;
echo 'Test '.$b; // outputs Test 2
echo 'Test $b'; // outputs Test $b
Двойные кавычки:
echo "\t";
// outputs actual tab letter
Одиночные цитаты
echo '\t';
// outputs \t as plain text.
Довольно просто. Это из-за эха. Вы можете видеть, что при печати строки вы можете использовать echo 'hello'; или эхо "привет"; Факт здесь заключается в том, используете ли вы один из них, вы не можете использовать его внутри переменных внутри, иначе php проанализирует его, поскольку это был конец строки.
Простой пример:
echo 'Hello'.$name.' how are you?';
echo "Hello".$name." how are you?";
Пример ассоциативной матрицы:
echo 'Hello'.$array["name"].' how are you?';
Если вы попытаетесь поместить массив ['name'], вы увидите, что php дает ошибку из-за разбора.
Надеюсь, поможет !