Joomla/PHP中JRequest :: getVar($ var)和$ var之间的区别?

Abe*_*ler 1 php joomla

首先让我说我对Joomla或PHP一无所知,所以我可能会在这里将苹果与橘子进行比较,但......

我一直在看,JRequest::getVar($var)$var在一些代码中,我一直在看.有人可以解释这两者之间的区别是什么?

根据Joomlas的文档getVar,"获取并返回给定的变量".如果是这种情况,为什么以下代码会返回不同的结果?

echo JRequest::getVar($amount);

echo $amount;
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 6

免责声明:我不知道关于Joomla的第一件事.

查看文档,JRequest::getVar从GET或POST参数中获取值,并且应该使用JRequest::getVar('amount')(注意参数是字符串,而不是变量).echo $amount并且echo JRequest::getVar($amount)当然远不及等价,前者意味着"回显"的值$amount,后者"用值的名称来回显GET或POST变量的值" $amount.

第二个参数$default也非常有用:

$amount = JRequest::getVar('amount', 100);

// is roughly equivalent to:

if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['amount'])) {
    $amount = $_GET['amount'];
} else if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['amount'])) {
    $amount = $_POST['amount'];
} else {
    $amount = 100;
}
Run Code Online (Sandbox Code Playgroud)

即使没有第二个参数,它也会在必要时处理变量清理和(un)转义,因此使用此函数读取请求参数是个好主意.