PHP - 类的对象无法转换为字符串

时间:2017-04-02 09:55:42

标签: php

我正在尝试打印下面简单类的属性。但相反,我得到上面的错误。我在这里没有找到类似问题的答案。错误在此行触发:

echo "$object1 name = " . $object1->name . "<br>";

在Windows帮助中使用XAMPP?

<?php
    $object1 = new User("Pickle", "YouGotIt");  
    print_r($object1);
    $object1->name  = "Alice";

    echo "$object1 name = " . $object1->name . "<br>"; /* this triggers the error */

    class User
    {
        public $name, $password;

        function __construct($n, $p) { // class constructor
            $name = $n;
            $password = $p;
        }
    }
?>

1 个答案:

答案 0 :(得分:2)

您的代码中存在两个错误,

  • 您在类构造函数中使用局部变量,而不是实例属性。你的构造函数方法应该是这样的:

    function __construct($n, $p) {
        $this->name = $n;
        $this->password = $p;
    }
    
  • 现在出现错误,类的对象无法转换为字符串。这是因为$object语句中的echo

    echo "$object1 name = " ...
          ^^^^^^^^
    

    您需要使用反斜杠转义此$object1,如下所示:

    echo "\$object1 name = " . $object1->name . "<br>";