【发布时间】:2018-11-16 06:43:11
【问题描述】:
所以当我意识到我没有逃脱我想要回应的变量时,我只是在偷懒,但奇怪的是它确实有效。
$item = ['name'=>'jeremiah', 'age'=>'22'];
echo "<ul>";
foreach($item as $key => $value) {
echo "<li> $key - $value</li>";
}
echo "</ul>";
什么时候你应该做的是这个
$item = ['name'=>'jeremiah', 'age'=>'22'];
echo "<ul>";
foreach($item as $key => $value) {
echo "<li>" . $key . " - " . $value . "</li>";
}
echo "</ul>";
我真的做了很多php已经有几年了,但是什么时候改变了?
PHP 7.2.2 (cli)(构建时间:2018 年 1 月 31 日 19:31:15)(NTS MSVC15 (Visual C++ 2017) x64)
【问题讨论】:
-
这通常被称为“字符串插值”顺便说一句。您可能可以搜索 PHP 文档。
-
"但是什么时候改变了?" ——据我所知:从来没有。 PHP 一直支持字符串插值。
-
这里有什么问题?
-
在双引号中可以按预期工作。在单引号中仍然无法按您的预期运行。你会得到文字变量。您也可能对 XSS 注入持开放态度,但我认为这不是这个问题的意义所在。这两个例子都没有逃避任何事情
-
你将如何跨站点攻击除了用户输入之外没有硬代码变量的东西?我的意思是,如果我要接受用户输入,我会写一些更像这样的东西 $name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_STRING);但是如果我在用户无法访问的地方硬编码变量,我不确定为什么我需要逃避任何东西......如果我错了请纠正我,总是愿意学习
标签: php