Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:面向对象编程是一种思想, 实现方式很多的
<?php
//类与对象 基础
//1.类的创建 关键字class
//2.命名空间 关键字namespace 相当于文件夹系统 把每个文件下命名的文件分开
//定义当前命名空间名为myClass
namespace myClass;
//创建类 MyClass
class MyClass{
//6.构造方法 __construct 在类实例化时自动调用
public function __construct(){
//构造方法
//可以用于给类属性初始值 - 接收参数 在实例化时传入参数 把参数值赋给属性
//简单点:
echo '<br>我被自动调用了。<br>';
}s
//这是我的类MyClass
//4.类中有成员 类属性(变量) 和 类方法(函数)
//类属性和类方法有访问控制符public protected private限定
//类属性必须要写访问限定符 类方法可以省略 默认为public
public $name = 'MyClass';
public $intro = '这是我的类MyClass';
private $privateName = 'DC';
//5.类方法
function myFunction(){
//方法内容随便写
echo '<br>(在类内的myFunction方法输出)<br>类名:'.$this->name.'<br>介绍:'.$this->intro.'<br>';
}
private function myPrivate(){
echo '<br>我私有name是:'.$this->privateName.'<br>';
}
}
//3.实例化 new 类可以无限实例化出对象。
//每个实例对象有自己编号
$c1 = new MyClass(); //调用了一次__construct 同时输出 '我被自动调用了。'
$c2 = new MyClass(); //调用了一次__construct 同时输出 '我被自动调用了。'
//调用方法 访问类成员
$name = $c1->name;
$intro = $c1->intro;
echo '<br>类名:'.$name.'<br>介绍:'.$intro.'<br>';
//调用类中的方法
echo $c1->myFunction();
echo '<hr>';
//get_class_methods() 查看类中定义的方法 传入常量
$methods = get_class_methods(MyClass::class);
var_dump($methods); //只有公开的方法才会显示 array(1) { [0]=> string(10) "myFunction" }
echo '<hr>';
//两个相同类的实例化对象 '=='true成立 '==='不成立false
var_dump($c1); //object(myClass\MyClass)#1 (0) { }
var_dump($c2); //object(myClass\MyClass)#2 (0) { }
//instanceof() 检测某个对象是否是属于这个类
$a = $c1 instanceof MyClass;
var_dump($a); //bool(true)
结果展示
手写:
总结 : 类是php编程中重要的一部分,现在只是学习到写法,一直在学习思想,但是思想总不能那么轻易理解掌握。类里面细节很多,但平常用到的可能却不多,只是循规蹈矩按类的使用方法来使用它,自己的角色是使用者而不是创造者,需要多遇见错误才能学习的更透彻一点。