【问题标题】:PHP method call reports error about it being undefined methodPHP 方法调用报告关于它是未定义方法的错误
【发布时间】:2011-02-26 16:38:00
【问题描述】:

我相信我的课程是正确的,但是当我尝试回显课程的输出时,我在第 28 行收到错误:“echo 'Your full name ....”行是第 28 行。任何帮助都会很好

<?php

echo 'Your full name is ' . $person->retrieve_full_name() . '.';

?>

这是我创建函数“retrieve_full_name”的地方

public function __retrieve_full_name() {
    $fullname = $this->firstname . ' . ' . $this->lastname;
    return $fullname;
}/* This ends the Full Name Function*/

我得到的错误是

致命错误:在第 28 行的 /home/mjcrawle/processlogin2.php 中调用未定义的方法 stdClass::retrieve_full_name()

【问题讨论】:

  • 你在哪里创建这个方法?你如何检索$person?为什么你的方法名前缀为__ 就像魔术方法一样?
  • 为什么在retrieve之前有这两个下划线?
  • 有趣的错误。你的班级真的叫stdClass吗?个人课程的奇怪名称。

标签: php class methods


【解决方案1】:

你的函数被称为__retrieve_full_name,但你却调用了retrieve_full_name。注意缺少的下划线。

双下划线通常是 php 内部/魔术函数的前缀,我建议不要在函数名称中使用它们。

【讨论】:

    【解决方案2】:

    您的直接错误是由于您使用错误的名称调用您的方法。并且:

    • 不要使用下划线来开始方法名
    • 根本不要在方法名称中使用下划线,如果您关心最佳实践,请改用驼峰式大小写 retrieveFullName()

    【讨论】:

      【解决方案3】:
      public function retrieve_full_name() {
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-13
        • 2012-01-03
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多