• 实例化类----黑科技用法,通过字符串来实例化
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()也无从实现了

最新文章

  1. Python 比较两个字符串大小
  2. form上传文件以及跨域异步上传
  3. java实现的排序(插入/希尔/归并)
  4. zookeeper第二课 客户端的简单命令
  5. 图片button
  6. iOS 判断相机权限是否被限制,判断相机是否可以使用
  7. FLASH CC 2015 CANVAS (一) 与AS3的写法区别
  8. Yii2中request的使用方法
  9. 使用inno setup制作安装包
  10. [NPOI2.0] 使用NPOI读取和导出Excel文件
  11. 获取linq生成的sql语句
  12. bugku web 管理员系统
  13. python7 数据类型的相互转化 字符编码
  14. 牛客小白月赛12 I (tarjan求割边)
  15. 洛谷P1192 台阶问题【记忆化搜索】
  16. Markdown编辑器使用说明
  17. Pycharm中不支持中文编码的解决方案。Pycharm中文报错。 Pycharm出现的部分快捷键无效及解决办法
  18. 【SLAM】安装 g2o_viewer
  19. windows10 查看进程端口的情况
  20. [转]NLog学习笔记二:深入学习

热门文章

  1. Linux 文件和目录的属性及权限
  2. Spring+SpringMvc+Hibernate整合记录
  3. Infix to Prefix conversion using two stacks
  4. H. The Nth Item(The 2019 Asia Nanchang First Round Online Programming Contest)
  5. linux 百度ping不通解决
  6. react 深度 循环嵌套对象渲染问题 map
  7. Codeforces 1189E. Count Pairs
  8. mybatis数组和集合的长度判断及插入
  9. SQL With AS Expression
  10. ETL测试或数据仓库测试入门