【发布时间】:2021-11-19 09:33:47
【问题描述】:
我在 Windows 10 x64 上的 XAMPP 3.2.4 上使用 PHP 7.4.5 和 Apache 2.0。 PHP API 版本为 20190902。
我在“htdocs”目录中创建了一个 .php 文件,然后在该文件中定义了一个带有变量的类和一个启动这些变量的函数,然后在类定义下方,我正在创建该类的一个实例并调用它的函数。然后我从 XAMPP 控制面板启动了 Apache。当我在浏览器中以 http://localhost/problem.php 的形式打开这个 PHP 文件时,浏览器会显示这个错误:
Uncaught Error: Call to undefined function setParams() in D:\xampp\htdocs\problem.php:34 Stack trace: #0 {main} thrown in D:\xampp\htdocs\problem.php on line 34
函数是public的,所以类描述中的括号没有问题,没有范围问题,所以想不通这个问题是从哪里来的。你有什么想法吗?
附:我已经重启了Apache,结果还是一样。
这是problem.php的代码:
<?php
phpinfo();
abstract class Person {
var $name; // = string;
}
class NaturalPerson extends Person {
var $dayOfBirth; // = integer;
var $MonthOfBirth; // = integer;
var $YearOfBirth; // = integer;
var $male; // = boolean;
public function setParams ($d, $m, $y, $ml) {
$this->dayOfBirth = $d;
$this->MonthOfBirth = $m;
$this->YearOfBirth = $y;
$this->male = $ml;
}
}
$np = new NaturalPerson();
$np.setParams(1,2,1910,true);
echo "<br>\n";
var_dump($np);
?>
【问题讨论】:
-
请提供minimal reproducible example。上面的代码在开头包含一个无用的
?>,但在开头甚至缺少必需的<?php。也可能相关,您是如何执行该代码的? -
1.这段代码缺少的只是开头的
-
2.我正在使用 XAMPP 3.2.4(Apache 2.0,PHP 7.4.5)在浏览器中输入此 URL:localhost/problem.php 3 在本地主机上运行此代码。非常感谢您纠正我的问题。我很感激。英语是我的第二语言。 4.正如其他评论者提到的,我必须使用“->”来调用类的成员函数,而不是“.”,这是一个字符串连接运算符。 5.感谢大家的回答!使用 -> 而不是 .解决了问题。
标签: php function class undefined