首先让我说我对Joomla或PHP一无所知,所以我可能会在这里将苹果与橘子进行比较,但......
我一直在看一些代码中的JRequest::getVar($var)
和$var
。有人可以解释这两者之间的区别是什么?
根据Joomlas的文档getVar
,“获取并返回给定变量。”如果是这种情况,为什么以下代码会返回不同的结果?
echo JRequest::getVar($amount);
echo $amount;
答案 0 :(得分:6)
免责声明:我不知道关于Joomla的第一件事。
查看the documentation,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;
}
即使没有第二个参数,它也会在必要时处理变量清理和(un)转义,因此使用此函数读取请求参数是个好主意。
答案 1 :(得分:0)