如何阅读这个PHP代码:$ input = JFactory :: getApplication() - >输入;

时间:2017-04-01 15:48:49

标签: php variables declaration

我在阅读这段php代码时感到困惑:

$input = JFactory::getApplication()->input;

据我所知,这是$input变量的声明。 任何人都可以帮忙解释声明的正确部分吗?

2 个答案:

答案 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类的更多信息。