0

PHPでは引用符は重要ではないことを学びました。

eval()しかし、次のコードでは、単一引用符を;で使用しようとすると、エラーが発生しますが、コードは二重引用符で正常に動作します。

$a = '2';
$b = '3';
$c = '$a+$b';
echo $c.'<br/>';
eval("\$c = \"$c\";");
//eval('\$c = \'$c\';');  //Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING
echo $c;
4

6 に答える 6

2

引用は重要です;-)

<?php

$color = "red";

echo "My car is $color"; // Outputs "My car is red"
echo 'My car is $color'; // Outputs "My car is $color"

?>
于 2012-05-08T19:26:49.170 に答える
2

PHP.netによると、一重引用符を使用する場合、エスケープ シーケンスは展開されません。

于 2012-05-08T19:27:52.327 に答える
1

二重引用符とは異なり、PHP は単一引用符内の変数を解析しません。

例:

$name = 'John';
echo 'hello $name'; // hello $name
echo "hello $name"; // hello John

詳しくは


eval参考までに、セキュリティ上の理由から、本番環境で使用することはお勧めできません。

于 2012-05-08T19:25:11.220 に答える
1

を使用することevalbad ideaできますが、これを行うlearning purpose場合、正しい方法は次の とおりです。

  eval("\$c = \$c;");

.

于 2012-05-08T19:28:36.307 に答える
0

次の例は、次の例から削除されました。PHPマニュアル

<?php
echo 'this is a simple string';

echo 'You can also have embedded newlines in 
strings this way as it is
okay to do';

// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>
于 2012-05-08T19:34:11.293 に答える
0

eval を使用せず、ここで文字列引用スキルを更新してください。

于 2012-05-08T19:26:16.043 に答える