PHP在函数差异中使用双引号或单引号

时间:2015-07-08 13:38:32

标签: php

嘿,我有一些简单的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新手......

2 个答案:

答案 0 :(得分:4)

你选择什么报价并不重要。有几个关于性能的讨论。实际上双引号会慢一点。但即使在100,000次迭代中,差异也很小。

唯一的区别是概念和逃避:

Concenation

双引号:

$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.

答案 1 :(得分:1)

非常简单。 这是因为 echo 。 您可以看到,在打印字符串时,您可以使用echo'hello';或者回声“你好”; 这里的事实是你是否使用一个你不能在变量里面使用相同的内容,否则php解析它,因为它是字符串的结尾。

简单示例:

echo 'Hello'.$name.' how are you?';
echo "Hello".$name." how are you?";

Asociative array示例:

echo 'Hello'.$array["name"].' how are you?';

如果你试图放入数组['name'],你会发现php因为解析而出错。

希望它有所帮助!