当前位置:学者斋 >

计算机 >php语言 >

PHP中的类与对象入门知识

PHP中的类与对象入门知识

语法比较好理解,但面向对象是编程思想,需要一定的代码量才能理解存在的意义。我们不妨来看看PHP中的类与对象入门知识,以下仅供参考!

PHP中的类与对象入门知识

基本语法

定义类

class name{

public $user = '张三';

function getUser(){

return $this->user;

}

}

class 关键字,定义类的时候必须要有

name 类名称,命名规则雷同变量

{ … } 类的代码,写在这里面

public 定义可见性,后面会讲

$user 定义类属性,很像变量

function getUser(){..} 定义类方法,很像函数

$this 伪变量,在类内部调用方法、属性时使用

调用类

只要看到 new xxx,这样的语法,就一定是在实例化类。

//实例化类,$n 是一个对象

$n = new name();

//调用类属性

echo $n->name;

//调用类方法,有括号的是方法

echo $n->getUser();

//静态调用类属性

name::$user;

name::getUser();

静态调用,需要有 static 的'修饰符,非本文重点,略过。

类属性

功能和语法 和 变量非常接近。

在类的内部定义。

调用时,必须通过类的实例化对象。

类方法

功能和语法 和 函数非常接近。

在类的内部定义。

调用时,必须通过类的实例化对象。

能使用 $this,而函数没有。

$this

PHP预先定义好的伪变量,用于在类的内部,调用其他方法和属性。

只能用,不能对它赋值。

可见性

在类的内部,可以使用可见性修饰符,来修饰类的属性和方法。

class name{

public $user = 'test';

//定义受保护的类方法

protected function get(){

return $this->user;

}

function get2(){

// 正确,在类内部可调用

$this->get();

}

}

$n = new name();

// 报错,受保护的方法,外部不能调用。

$n->get();

public (公有)类的内部、外部都可以调用

protected (受保护)只能在类的内部调用,包括子类

private (私有)只能在类的内部调用,排除子类

魔术方法

由PHP 定义好的一系列有特殊意义的方法。

构造方法

它是魔术方法中比较常用的一种。

class name{

function __construct( $name ){

echo $name;

}

}

$n = new name( '张三' );

问题:上面的代码会输出 ‘张三’ 吗?

答案:原本不会,因为没有调用的类方法。

实际:会输出,因为 __construct() 是构造方法,实例化类的时候自动执行。

注意:你给对象传的参数,会由构造方法来接收。

还有别的魔术方法吗?

下面的全是,用的不多,新人知道就好。

__destruct(),__call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()

魔术方法有什么特征

原则上,以“__”两个下划线开头的都应该是。

在特定场景自动执行。

类继承

子类继承父类的方法和属性,来强化自己。

基本语法

class a{

function get(){

echo 'a';

}

}

class b extends a{

function get2(){

echo 'b';

}

}

$obj = new b();

//正确,继承了 父类 a 的方法。

$obj->get();

子类 extends 父类 (继承语法)

可见性为 private 的方法,不能继承

父子类同名的方法、属性,优先调用子类

子类可通过 parent::方法() 来调用父类方法,包括构造函数

总结

类与对象,是语法学习时的一座大山,想理解它的精髓更非一日之功,所以新人在这里,能了解语法即可,至于为什么这样用,需要实战中慢慢提高。

标签: PHP
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/php/mwzrxg.html