企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 定义 * 每个类的定义都以关键字`class`开头,后面跟着类名(非保留字)。 * 类名后跟着一对花括号,里面包含有类属性和方法的定义。 ~~~php <?php class A { //属性 public $a; private $b; //方法 public function actionA() { } } ~~~ #### 类成员默认值 在定义类属性的时候,可以使用默认值 ~~~php <?php class A { //默认值 public $a = 'Hi'; private $b = 'Hello'; //方法 public function actionA() { } } ~~~ #### 创建实例 要创建一个对象的实例,使用关键字`new` ~~~php <?php $a = new A();//创建类 A 的实例 ~~~ #### 对象赋值 当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。 ~~~php <?php class A { } $a = new A(); $b = $a; $c = &$a; $d = clone $a; $a = null; var_dump($a,$b,$c,$d); ~~~ 上述结果为 ~~~bash NULL object(A)#1 (0) { } NULL object(A)#2 (0) { } ~~~ #### $this 伪变量`$this`可以在当一个方法在对象内部调用时使用。$this 是一个到调用对象(通常是方法所属于的对象,但也可以是另一个对象,如果该方法是从第二个对象内静态调用的话)的引用。 编辑`/home/project/this.php` ~~~php <?php class A { function actionA() { if (isset($this)) { echo '$this is defined ('; echo get_class($this); echo ")\n"; } else { echo '$this is not defined.'.PHP_EOL; } } } class B { function actionB() { A::actionA(); } } $a = new A(); $a->actionA(); A::actionA(); $b = new B(); $b->actionB(); B::actionB(); ~~~ 执行 ~~~bash php this.php ~~~ 从结果可以看出,`$this`只能在对象中使用,不能在静态方法中调用。但是如果在另一个对象(类 B)中调用静态方法,则`$this`指向该类( B )。 [](javascript:;) 下一步