面向对象 - 类 ¶
作者: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();