将方法的类实例传递给一个函数PHP
我在这里苦苦挣扎了一些PHP代码。就像标题所说,我试图将一个Class的实例作为参数传递给一个函数(注意,这个文件位于另一个文件中,并且具有不同的作用域,因此我需要将它作为参数传递)。 这是我目前设置代码:将方法的类实例传递给一个函数PHP
// requires built this page, the classes and the functions are in seperate files.
// That's why I need to pass it in as a parameter.
class ClassName {
private $name;
private $age;
public function getAge(){
return $this->age;
}
} $className = new ClassName();
// seperate file
var_dump($className); // works, but has no methods.
function randomFunc($className){
echo $className->getAge(); // call to undefined method className::getAge()
} randomFunc($className);
编辑2: 我在这里上传我的代码: http://sandbox.onlinephpfunctions.com/code/99954d61ca4d3f53ce549dab9f8333630633d89c
我希望你们这些人能帮助我,任何帮助,将不胜感激。
这工作得很好:
<?php
class ClassName {
private $name;
private $age = 19;
public function getAge(){
return $this->age;
}
}
function randomFunc($className){
echo $className->getAge(); // call to undefined method className::getAge()
}
$className = new ClassName();
randomFunc($className);
输出:19
你的代码也运行正常对我来说,它只是输出没有因为年龄$是空的。
您运行的是哪个版本的PHP?
我在XAMPP上使用PHP 5/7。你必须明白,这是一个基于我面临的问题的例子。目前的代码要复杂得多,但它在同样的事情上失败了。你在$年代是正确的,这是我在复制这个例子时犯的一个小错误。所以从理论上讲,这没有错? –
是的,你的代码应该很好:) – skrilled
我已经得到了我的答案,我犯了一个愚蠢的错误。无论如何,非常感谢你提供这样一个很好的答案! –
您是否将具有类定义的文件包含在单独的文件中? –
这是正确的! @CharlotteDunois –
'var_dump'不显示方法,对于'echo'也不显示方法,如果没有输出或没有数据显示,则不会显示方法。哟没有在你的课堂中设置年龄,所以'getAge'返回NULL,不能用'echo'显示。为了测试目的'私人$年龄= 12;'(或任何其他数字),它会工作。 –