首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >参数‘JInput’作为<数据源>导致‘致命错误:调用非对象上的成员函数getString()’

参数‘JInput’作为<数据源>导致‘致命错误:调用非对象上的成员函数getString()’
EN

Stack Overflow用户
提问于 2016-11-14 15:55:07
回答 1查看 60关注 0票数 0

我对Joomla很陌生!(以及一般的PHP ),并试图通过在本地Joomla!-Installation上开发一个网站来学习。我在PHP 5.5.12、Apache2.4.9和Joomla3.6.4中使用WAMP-Server。

现在,我喜欢从$_POST$_GET检索数据。两者都同样不安全,因此只有在一起检索和处理它们才是合乎逻辑的。

根据本文strings,我应该能够这样做:

代码语言:javascript
运行
复制
$string = JFactory::getApplication()->input->method->getString( 'myText', '' );

它不起作用,抱怨'method'是一个非对象。(“致命错误:调用非对象上的成员函数getString()”)

来自同一列表的所有其他数据源(例如'get''post''cookie''request'等)不要产生任何错误,而且看起来是完美无缺的。

不幸的是,我需要从$_POST或$_GET (或者两者都检索,但没有$_COOKIE)检索数据,这正是数据源='method'应该做的事情。

当然,我可以顺序地使用'post''get',但如果有一个选项可以直接使用(减少开销),这对我来说是愚蠢的。和更小的代码)。也许我得先解决这个问题,但我们暂时不谈这个了。

JInput,唯一提到的Super s是'get''post''server'。默认情况下,没有任何关于其他明显存在的源(没有错误发生)或命名源的任何信息。

我的搜索已经进行了一段时间了,我找不到更多的相关信息(目标是Joomla!而不是PHP)。如果我错过了一些最基本的东西,请告诉我。

说到这一点,我的问题现在是:

是否有任何设置(或更新)使'method'**-data-source 工作?**

是否有另一个值(!=**'method'**)表示 JInput 中的数据源,可用于直接从 $_POST $_GET 检索数据,或者是否需要顺序调用 'post' E 253 'get' E 157来完成此E 258(可能是d59由于名称上的冲突而重命名)e 160E 261

谢谢你花时间阅读(也许还能回答)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 14:03:50

我终于想出了办法,把它推到@Xorifelse,让它朝着正确的方向前进。

我的问题的答案是:

1)我是否需要设置(或更新)才能使“方法”正常工作?

必须以如下方式将名为'_METHOD'的数组添加到$GLOBALS-array中:

代码语言:javascript
运行
复制
$GLOBALS['_METHOD'] = array_merge($_GET,$_POST);

然后,用data='method'调用'method'将返回$_GET$_POST的合并内容,如果它们具有相同的键,则在$_GET中使用$_POST覆盖值。

2)对于'method'中的数据源,是否有另一个可用于.的值(!= JInput )?

$GLOBALS-array中的每个现有数组(其名称以下划线('_')字符开头,仅由大写字符组成)可以通过使用数据源调用JInput来使用该数组的名称(没有前面的下划线)。

如果在JInput调用之前创建和/或填充了该数组,则无关紧要。因此,在第一个问题中使用像_GETANDPOST这样的名称而不是_METHOD可以更好地描述它的目的。

但是.

玩弄$GLOBALS通常被认为是的坏做法!!

对于每个人来说,想知道JInput中的数据源的这些值是如何工作的,为什么它们看起来可以像一个方法一样被调用,即使它们不是方法:

答案是在‘魔术方法’‘属性重载’中找到的。

https://secure.php.net/manual/en/language.oop5.magic.php

https://secure.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40592796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档