面向对象 - 类

  • 作者:KK

  • 发表日期:2017.02.14


类是怎样的

在很多编程语言里都有这种概念,先从代码上认识一下它:

class User{

}

这就通过class关键字定义了一个“User”类,但这是个空类,里面什么也没有


类的命名

类的名字就是这一部分:

class 类的名字{

}

由字母、数字、下划线三种字符组成,首字母不能是数字,看看别人的PHP代码可以发现各种各样的类名,其实主要是按照用途来命名,也能用中文命名~(正式编程不提倡)

通常类名都是大写字母开头命名


怎么使用类

定义好类之后,就可以用$user = new User();的方式调用了,示例代码:

class User{}

$user = new User();
echo '类型是:' . gettype($user) . '<br/>'; // 类型是 object
print_r($user);

$user2 = new User(); //可以再new一次,赋值给另一个变量
var_dump($user2);

以上是用new关键词来实例化User类,注意记住这个过程叫做实例化,也就是说上面实例化了2次User,每次实例化都可以将实例化的结果赋值给指定的变量


实例

$变量 = new 类名()后,这个过程叫实例化,将类实例化后赋值给变量,这个变量名可以自己随便起,不规定要跟类名相似(但实际上我们将变量以小写开头命名,以便与类名对应好识别)

而这个变量就可以说是这个类的实例,由于gettype返回的类型是object,所以我们也称为对象

$user1 = new User(); // $user1 是 User类 的实例
$user2 = new User(); // $user2 也是 User类 的实例

其中$user1和$user2也是对象


判断一个类是否被定义过

class_exists函数:

echo class_exists('User') ? 'User存在' : 'User不存在';

echo class_exists('stdClass') ? 'stdClass存在' : 'stdClass不存在'; //通常都会存在,这是PHP自带的类

直到这里都还只是空的类,不能干点什么事,耐心点往后看吧,下一篇方法


可以定义多个类

一个代码文件里允许定义多个类

class User{}

class Card{}

$user = new User();
$card = new Card();

这样就定义了2个类,并且也能实例化

但通常情况下我们都是1个代码文件只定义一个类,而且只定义类,不做别的事,比如下面有两个文件,分别是User.php和index.php

User.php:

class User{

}

index.php:

include('User.php');
$user = new User();