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 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿