douguanci9158 2016-09-29 10:09
浏览 310
已采纳

在面向对象的php类中,$ this-> name = $ name是什么意思?

class User {

  public $name;

  public function __construct($name) {
    $this->name = $name;
  }

  public function sayHi() {
    echo "Hi, I am $this->name!";
  }
}

Can someone explain to me word by word, what is meant by $this->name=$name? I keep thinking like, $this goes into(hence the -> sign) name which is (hence the = sign) $name defined beforehand. Also I dont see the need of that function?

Could just go like this :

class User {

  public $name;

  public function sayHi() {
    echo "Hi, I am $name!";
  }
}

I'm out of idea thinking about this .. thanks in advance.

  • 写回答

3条回答 默认 最新

  • duanbo7517 2016-09-29 10:16
    关注

    When you are creating a new instance of the class User with the __construct parameter $name, by $this->nameit is set to the $name property of the class. In your second example $name does not get any value because you are nowhere assigning any value to it.

    You could also have it like this for better understanding:

    class User {
    
      public $nameProperty;
    
      public function __construct($name) {
        $this->nameProperty = $name;
      }
    
      public function sayHi() {
        echo "Hi, I am $this->nameProperty!";
      }
    }
    

    $this refers to the class you are currently in. So when you create a new class of User, you can pass a name by using the $name parameter. This parameter then gets assigned to the $nameProperty and in your method sayHi() you would then echo the assigned name.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失