如何解决没有变量的类实例
| 我要解决的问题是,不好的做法是实例化一个类new Classname();
因为我需要运行__construct类,但是我不需要使用该类。因为该类中的其他函数将从__construct调用。
解决方法
可以,但是作为维护您代码的人,我对此会感到非常困惑。通常,仅实例化一个对象没有副作用,因此我假设我可以删除该行,并且一切仍然可以正常进行。
我建议您重新考虑代码的结构,因为将带有副作用的代码置于
__construct
中绝对不是标准的。
,考虑改用这样的方法:
class Foo
{
public static function do_something()
{
// ...
}
}
Foo::do_something();
虽然您所拥有的将起作用,但尚不清楚是否应该发生某些事情。
(如果您坚持要使用这样的对象,则至少应在每次使用时清楚地记录下来。)
,好吧,只要说我们在文件中有一个名为HelloWorld的类名即可。
文件class.HelloWorld.php
class HelloWorld {
function __construct()
{
}
public function doSomething(){
echo \"new HelloWorld()->doSomething() was called\";
}
public function anotherMethod(){
echo \"new HelloWorld()->anotherMethod() was called\";
}
}
现在,您可以在运行时实例化该类,而无需将其保存到变量中。
require(\'class.HelloWorld.php\');
// you can just instantiate it and the constructur will be called automatically
(new HelloWorld());
// or you can instantiate it and call other methods
(new HelloWorld())->doSomething();
我不确定垃圾收集器是否会删除实例化的类,但是我认为由于这些类没有保存到变量中,因此不会保存在内存中,那是完美的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。