【问题标题】:PHP - Accessing object name within a class functionPHP - 在类函数中访问对象名称
【发布时间】:2025-12-24 08:25:10
【问题描述】:

这里的第一个问题。请原谅新手错误。

我希望能够在函数中引用对象名称。

假设类中的函数是 display_report()。我使用代码调用对象 $jan2011 的函数:

$jan2011->display_report(); 

在 display_report() 函数中,我可以将对象变量称为 $this->date 或 $this->title,其中 $date 和 $title 都是类中的变量。

但是如何在 display_report() 函数中确定调用它的对象是 $jan2011?只使用 $this 似乎是不允许的。

我要做的是创建一个类似这样的变量:

 $name = "W_".$this."_7";

我希望将 $name 设置为 W_jan2011_7(或者可能是 W_$jan2011_7),但它不起作用。

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 谢谢大家。我会改过自新的:)
  • 如果您对给出的答案感到满意,请将最佳标记为正确答案,以帮助其他用户找到此问题!见FAQ

标签: php function object this


【解决方案1】:

您不能从对象内部访问引用名称,它们是两个完全不同的上下文。您采用的方法不符合 OO,而是尝试在报告类中放置一个属性(例如“名称”)并覆盖 __toString 方法以输出对象的字符串表示形式(有关 __toString 的更多信息在 php docs )。

【讨论】:

    【解决方案2】:

    一般来说,你不能;在某些情况下,变量甚至没有名称。想象一下:

    function foo()
    {
        ...
        return new Report();
    }
    
    foo()->display_report();
    

    我建议在您的课程中添加一个 name 字段。

    【讨论】: