首先让我说我对Joomla或PHP一无所知,所以我可能会在这里将苹果与橘子进行比较,但......
我一直在看,JRequest::getVar($var)并$var在一些代码中,我一直在看.有人可以解释这两者之间的区别是什么?
根据Joomlas的文档getVar,"获取并返回给定的变量".如果是这种情况,为什么以下代码会返回不同的结果?
echo JRequest::getVar($amount);
echo $amount;
Run Code Online (Sandbox Code Playgroud)
免责声明:我不知道关于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)转义,因此使用此函数读取请求参数是个好主意.