PHP-访问类中的非类函数
我的尝试:在名为bradpitt.php的文件中有PHP-访问类中的非类函数,php,function,class,constructor,member,Php,Function,Class,Constructor,Member,我的尝试:在名为bradpitt.php的文件中有$getSomeData函数。这是一个简单的函数。它不在类中。其中我有另一个文件名jolie.php。此文件有一个类。我试图访问该文件中的$getSomeData() CoolPlugin.php class CoolPlugin extends plugin { const COOLLIST = 'properties/coolBoy.json'; public function getSomeData () {
$getSomeData
函数。这是一个简单的函数。它不在类中。其中我有另一个文件名jolie.php。此文件有一个类。我试图访问该文件中的$getSomeData()
CoolPlugin.php
class CoolPlugin extends plugin
{
const COOLLIST = 'properties/coolBoy.json';
public function getSomeData () {
return DataUtil::readDataFile(self::COOLLIST);
}
include_once 'bradpitt.php';
class Jolie{
public $getSomeData;
public function __construct(){
global $getSomeData;
$this->$getSomeData();
}
}
include_once 'jolie.php';
$joiliePage = new Jolie();
var_dump($joiliePage->getSomeData);
ERROR:
Notice: Undefined variable: joiliePage in output.php on line 173
Notice: Trying to get property of non-object in output.php on line 173
**NULL**
bradpitt.php(非类文件-一个简单函数)
jolie.php
class CoolPlugin extends plugin
{
const COOLLIST = 'properties/coolBoy.json';
public function getSomeData () {
return DataUtil::readDataFile(self::COOLLIST);
}
include_once 'bradpitt.php';
class Jolie{
public $getSomeData;
public function __construct(){
global $getSomeData;
$this->$getSomeData();
}
}
include_once 'jolie.php';
$joiliePage = new Jolie();
var_dump($joiliePage->getSomeData);
ERROR:
Notice: Undefined variable: joiliePage in output.php on line 173
Notice: Trying to get property of non-object in output.php on line 173
**NULL**
output.php
class CoolPlugin extends plugin
{
const COOLLIST = 'properties/coolBoy.json';
public function getSomeData () {
return DataUtil::readDataFile(self::COOLLIST);
}
include_once 'bradpitt.php';
class Jolie{
public $getSomeData;
public function __construct(){
global $getSomeData;
$this->$getSomeData();
}
}
include_once 'jolie.php';
$joiliePage = new Jolie();
var_dump($joiliePage->getSomeData);
ERROR:
Notice: Undefined variable: joiliePage in output.php on line 173
Notice: Trying to get property of non-object in output.php on line 173
**NULL**
如何在PHP中调用和访问另一个类中的简单函数(以对象形式返回)
当它返回NULL时,我做错了什么 您发布的代码充满了问题
var_dump($joiliePage->getSomeData);
ERROR:
Notice: Undefined variable: joiliePage in output.php on line 173
Notice: Trying to get property of non-object in output.php on line 173
**NULL**
假设is第173行是上面列出的那一行,两条错误消息都说明了相同的事情:变量$joiliePage
未初始化(解释器认为其值为NULL
)
不要被PHP将它们归类为“通知”的事实所愚弄。它们是从解释器的角度来看的通知(它找不到变量),但它们是代码的错误,因为它无法成功继续
函数名为
\uu construct()
,但您可能希望它是类。它不是构造函数,解释器不会自动调用它,因为它没有正确的名称。构造函数的名称是\u construct()
。注意,在代码中缺少中间的“S”。
方法\uu construct()
声明全局变量$getSomeData
如果成功包含了文件bradpitt.php
(如果该文件不存在,则可能会失败并发出警告而不中断脚本),则$getSomeData
符号引用与文件bradpitt.php
中定义的同名变量
但是,调用$this->$getSomeData()
并不引用此全局变量。它使用具有相同名称的类属性,该属性已初始化。此代码无法运行
要调用全局变量$getSomeData
中存储的函数,代码应为:
public function __construct(){
global $getSomeData;
$getSomeData();
}
还要注意,该语句结尾缺少分号,并产生语法错误。您的类的定义不正确,无法编译,无法创建类型为
Jolie
的对象。对于初学者:joliePage
!=<代码>作业页面。另外,您是否在output.php
中包含了jolie.php
?@FirstOne-对不起!并更正了输入错误,在output.php
中添加了includejolie.php
。中的代码应该在CoolPlugin.php中作为对象返回。我的最终目标是在jolie.php
中打印coolBoy.json
数据。如果我在output.php
中直接打印,比如$see=$getSomeData();var_dump(见)
我正在打印JSON数据,但如果尝试通过joile.php
访问和打印,则不会发生这种情况。我该如何用OO的方式做同样的事情呢?谢谢你的努力。。而\u构造不是问题。我接受您的回答,$this->$getSomeData()未引用此全局变量。哪一个是错误的。