Разница между JRequest :: getVar ($ var) и $ var в Joomla / PHP? - PullRequest
1 голос
/ 04 ноября 2010

Позвольте мне начать с того, что я ничего не знаю о Joomla или PHP, поэтому я мог бы сравнивать яблоки с апельсинами здесь, но ....

Я продолжаю видеть JRequest::getVar($var) и $var в каком-то коде i 'я смотрелМожет кто-нибудь объяснить, в чем разница между этими двумя понятиями?

Согласно документации Joomlas getVar, "извлекает и возвращает заданную переменную".Если это так, то почему следующий код возвращает разные результаты?

echo JRequest::getVar($amount);

echo $amount;

Ответы [ 2 ]

6 голосов
/ 04 ноября 2010

Отказ от ответственности: я не знаю в первую очередь о 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;
}

Даже без второго параметра он позаботится о переменной очистке и (не) экранировании при необходимости,поэтому рекомендуется использовать эту функцию для чтения параметров запроса.

0 голосов
/ 04 ноября 2010

getVar получает переменную из одного из глобальных массивов PHP в зависимости от переданного хеш-аргумента.

Joomla API

Код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...