php类知识点滴---类的实例化,构造函数,继承初步

  • 实例化类----黑科技用法,通过字符串来实例化
class coach
{
    public function __construct()
    {
        echo "欢迎光临北武堂"."\n";
    }
    public function slogan()
    {
        echo "吼吼~哈哈~"."\n";
    }
}
$wenwa = 'coach';//字符串对应了coach类
$duwa = new $wenwa;
$duwa->slogan();

 

  • 构造函数
<?php
class mylove
{
    public $name="陈培昌";
    public function __construct()
    {
        echo "喜欢练搏击的弟弟"."\n";
    }
    public function showmyname()
    {
        echo "获取到的名字是:".$this->name."\n";
    }
}
$cpc = new mylove();
$cpc->showmyname();
?>

结果:

  喜欢练搏击的弟弟
  获取到的名字是:陈培昌

  •  继承(与python不同,php是单一继承语言,也就是一个类只能有一个父类)

 

父类代码如下:
class coach
{
    public $master = "老张";
    protected $lover = "丁大锅";
    private $lovegame = "SM";
    public function slogan()
    {
        echo "吼吼~哈哈~"."\n";
    }
}
定义父类coach的子类cpc,继承使用关键词extends
class cpc extends coach
{
    public function __construct()
    {
        //$this->master = $master;
        echo "我的师父是".$this->master."__我爱".$this->lover."__喜欢玩"."\n";
    }

    public function self_introduce($name,$age)
    {

        echo "hello~my name is ".$name."今年芳龄".$age."\n";
    }
}
$cpc = new cpc();
$cpc->slogan();
输出结果:

吼吼~哈哈~
hello~my name is 陈培昌今年芳龄21

点评:哇啊哦~这么厉害,子类cpc里没有定义slogan方法居然可以调用!正是继承的魔力之所在!
  •  $this详解
在类的声明内部,$this用于指代对象本身;类的内部属性,可以通过$this->去掉$的属性名来访问,另外我们知道,
在类的内部一些特殊修饰符修饰的属性,方法例如private,protected等,

不能在外部访问(说通俗点,就是不能被实例化对象直接访问,调用),那么按照这种逻辑,$this代表了实例化对象,也不能直接访问
but......现实很打脸
<?php
class mycoach
{
public $name="陈培昌";
private $favorite = "喜欢丁大锅";
public function __construct()
{
echo $this->name.$this->favorite.PHP_EOL;
}
public function __get($key)
{
return $this->$key;
}
public function __set($key,$value)
{
$this->$key = $value;
}
}
$cpc = new mycoach();
echo "通过魔术方法__get获取到的favorite属性".$cpc->favorite.PHP_EOL;
$cpc->favorite="丁大锅送的手表";
echo "通过魔术方法__set设置后的favorite属性".($cpc->favorite).PHP_EOL;
?>


输出结果

陈培昌喜欢丁大锅
通过魔术方法__get获取到的favorite属性喜欢丁大锅
通过魔术方法__set设置后的favorite属性丁大锅送的手表

 
不过想想也不尽合理,如果$this也不能访问,大概魔术方法 __set(),和__get()也无从实现了

 

转载于:https://www.cnblogs.com/saintdingspage/p/10958253.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值