Php 访问函数中的类
以定义的类为例 我想在函数中添加“多一个值”,如下所示:Php 访问函数中的类,php,Php,以定义的类为例 我想在函数中添加“多一个值”,如下所示: function test_function() { $Testclass->setTestvar("one more value"); } function test_function() { global Testclass; $Testclass->setTestvar("one more value"); } 但它不起作用。我给出了错误消息undefined variable Testcla
function test_function() {
$Testclass->setTestvar("one more value");
}
function test_function() {
global Testclass;
$Testclass->setTestvar("one more value");
}
但它不起作用。我给出了错误消息undefined variable Testclass。为了使其工作,我必须在函数中将变量定义为全局变量,如下所示:
function test_function() {
$Testclass->setTestvar("one more value");
}
function test_function() {
global Testclass;
$Testclass->setTestvar("one more value");
}
我对PHP很陌生,但这种使用方式对我来说似乎很奇怪。从主PHP文件中已经定义了它,但是当我从函数中使用它时,我必须重新定义。基本上,我要做的是创建一个类,该类创建一个新文件,并从不同的函数向其中添加字符串。难道没有更好的办法吗?有什么建议吗?非常感谢 一种方法是使用singleton MyClass::getInstance()->DoSomethingUser() 有时可以使用静态方法
MyClass::doIt() 函数有自己的私有变量范围。因此(例如)您可以在函数中使用
$i
,而不必担心它会在程序中的其他地方搞砸另一个$i
。如果要让函数对已存在的对象执行操作,只需将对象作为参数传递给函数:
function test_function(Testclass $testclass)
{
$testclass->setTestvar("one more value");
}
然后用对象调用它:
$Testclass = new Testclass();
test_function($Testclass);
注意:如果您在类外定义的函数与类密切相关,那么您可能希望将它们定义为类内的方法,而不是单独的独立函数。请参阅。谢谢Alex,我确实理解私有变量作用域的概念。我不担心在程序的其他地方把另一个变量搞砸,恰恰相反。我想使用已经定义的同一个类。该类是一个日志文件。我创建了一个日志文件,然后在其中添加行。从主程序来看,它工作得很好,但从函数内部,我必须添加全局变量并再次定义变量,这对我来说很奇怪。只是想知道是否有更好的方法。我觉得我的留言解释得很好。谢谢伊万的快速回复!使用singleton似乎是一种很好的方法,但我在使用它时仍然遇到同样的问题。如果你能给我一些完整的代码示例,这将是非常有帮助的!(或者至少还有一些提示)