我正在编写一个配置文件解析器,并在我的Config.php文件中有一个名为getVals()的函数,但显然当我在测试中调用它时会抛出“未定义函数”错误。
的config.php
<?php
require_once '../extlib/pear/Config/Lite.php';
class Config {
private $config;
function __construct($conf) {
$this->config = new Config_Lite();
echo "calling open...<br>";
$this->open($conf);
echo "open done...<br>";
}
function open($cfile) {
if (file_exists($cfile)) {
$this->config->read($cfile);
} else {
file_put_contents($cfile, "");
$this->open($cfile);
}
}
function getVals() {
return $this->config;
}
function setVals($group, $key, $value) {
$this->config->set($group, $key, $value);
}
function save() {
$this->config->save();
}
}
?>
cfgtest.php中的测试类
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require_once '../util/Config.php';
$cfile = "../../test.cfg";
$cfg = new Config($cfile);
if (is_null($cfg)) {
echo "NULL";
} else {
echo $cfg.getVals();
}
?>
输出
calling open...
open done...
Fatal error: Call to undefined function getVals() in cfgtest.php on line 13
我想知道为什么在那里有函数时会出现未定义的函数错误。
答案 0 :(得分:7)
在php中调用方法或对象的成员,请使用 - &gt;操作者:
if (is_null($cfg))
{
echo "NULL";
}
else
{
echo $cfg->getVals();
}
在PHP's website上了解有关PHP面向对象编程的更多信息。
答案 1 :(得分:1)
呼叫应该使用 - &gt;操作
$cfg.getVals();
应该是
$cfg->getVals();
答案 2 :(得分:1)
使用$cfg->getVals();
代替$cfg.getVals();
现在你正在尝试连接!
答案 3 :(得分:0)
哎呀......错过了' - &gt;'。大声笑。对所有人来说都很好。