我在阅读这段php代码时感到困惑:
$input = JFactory::getApplication()->input;
据我所知,这是$input
变量的声明。
任何人都可以帮忙解释声明的正确部分吗?
答案 0 :(得分:1)
$ 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值的默认参数初始化类......它有点复杂。
答案 1 :(得分:1)
您所指的代码行是Joomla读取GET / POST / COOKIE参数的方式。
$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 Platform类,它使您可以访问Joomla中最重要的部分,如应用程序或Joomla全局配置。
getApplication
是类Jfactory
中的方法名称。这是::
引用的事实,这意味着此方法是静态的。
input
是Jfactory类的属性。
您可以从Joomla documentation找到有关Jfactory类的更多信息。