读这行php代码时,我感到很困惑:
$input = JFactory::getApplication()->input;据我所知,这是$input变量的声明。有人能帮我解释一下宣言的正确部分吗?
发布于 2017-04-01 23:54:54
$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值的默认参数来初始化类的。这有点复杂。
发布于 2017-04-02 00:09:06
您引用的代码行是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,是因为该类的代码体系结构使用了工厂设计模式。
事实上,JFactory是Joomla平台类,它让您可以访问Joomla中最重要的部分,如应用程序或Joomla全局配置。
getApplication是类Jfactory中的方法名。它被::引用了,这意味着这个方法是静态的。
input是类Jfactory的一个属性。
您可以在Joomla documentation中找到有关Jfactory类的更多信息。
https://stackoverflow.com/questions/43158865
复制相似问题