我将接手维护一个旧网站,发现了这个我从未见过的处理表单的语法,让我感到困惑,我也不确定它具体是干什么的:
foreach (array('address','comments','country','email','mail_content','name','title') as $vuln)
{
isset($_REQUEST[$vuln]) and $_REQUEST[$vuln] = htmlentities($_REQUEST[$vuln]);
isset($_GET[$vuln]) and $_GET[$vuln] = htmlentities($_GET[$vuln]);
isset($_POST[$vuln]) and $_POST[$vuln] = htmlentities($_POST[$vuln]);
isset($$vuln) and $$vuln = htmlentities($$vuln);
}
让我有点困惑的是其中的 "and" - 我把它理解为 "如果变量已经设置,将其转换为html实体,但是为什么还需要一个 'and'?
最后一行代码是做什么用的呢?
isset($$vuln) and $$vuln = htmlentities($$vuln);
REQUEST
,GET
和POST
。$$vuln
是一个变量变量。请参考 http://php.net/manual/zh/language.variables.variable.php。 - chris85