Я запутался, читая эту строку кода PHP:
$input = JFactory::getApplication()->input;
Как я понимаю, это декларация для $input
переменная.
Может ли кто-нибудь помочь объяснить правильную часть декларации?
$ input = JFactory :: getApplication () -> input;
JFACTORY — это класс
getApplication () является статической функцией и возвращает объект JFactory
вход является параметром
например
class JFactory
{
public $input='sugumar';
public static function getApplication()
{
return new JFactory;
}
}
$input = JFactory::getApplication()->input;
echo $input;
JFactory — это класс
JFactory::getApplication() when we use this class is not initialized
но только выполняет getApplication ().
если у вас есть функция __construct () {}, она не будет выполнена. выполняется только функция getApplication.
это может присвоить значение $ input, инициализировать класс некоторым параметром по умолчанию, который устанавливает значение $ input … это немного сложно.
Строка кода, на которую вы ссылаетесь, представляет собой способ чтения параметров GET / POST / COOKIE в Joomla.
$input = JFactory::getApplication()->input;
Допустим, вы хотите получить все данные, полученные в $ _POST. Вы бы сделали что-то вроде:
$input = JFactory::getApplication()->input;
$post_array = $input->getArray($_POST);
если ты var_dump($post_array)
, вы должны увидеть данные.
Если вы хотите получить определенные ключи из $ _GET, $ _POST и т. Д., Вы должны сделать что-то вроде этого:
// GET specific dataset
JFactory::getApplication()->input->get->get('username');
// POST specific dataset
JFactory::getApplication()->input->post->get('username');
// COOKIE specific dataset
JFactory::getApplication()->input->cookie->get('usermane');
Теперь давайте разберемся в смысле правой части:
$input = JFactory::getApplication()->input;
Jfactory
на самом деле имя класса. Это называется factory
потому что архитектура кода для этого класса использует шаблон проектирования Factory.
Фактически, JFactory — это класс платформы Joomla, он предоставляет вам доступ к самым важным частям в Joomla, таким как приложение или глобальная конфигурация Joomla.
getApplication
имя метода в классе Jfactory
, Тот факт, что это ссылка с ::
это означает, что этот метод является статическим.
input
является атрибутом класса Jfactory.
Вы можете найти больше информации о классе Jfactory из Joomla документация.