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条)

报告相同问题?

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来