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

时间:2010-11-04 02:43:46

标签: php joomla

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

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

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

echo JRequest::getVar($amount);

echo $amount;

2 个答案:

答案 0 :(得分:6)

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

查看the documentationJRequest::getVar从GET或POST参数中获取值,并且应该像JRequest::getVar('amount')一样使用(注意参数是字符串,而不是变量)。 echo $amountecho 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)

getVar从一个PHP全局数组中获取一个变量,具体取决于传递的哈希参数。

Joomla API

Code