千家信息网

PHP面向对象的基础概念

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"PHP面向对象的基础概念",在日常操作中,相信很多人在PHP面向对象的基础概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP面向对象的基础概念"
千家信息网最后更新 2026年11月03日PHP面向对象的基础概念

这篇文章主要介绍"PHP面向对象的基础概念",在日常操作中,相信很多人在PHP面向对象的基础概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP面向对象的基础概念"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1> if( "false" ) 等效于 if( true), 因为非空字符串是true
2> 检查数据类型:
is_array();
is_object();
is_string();
is_null();
is_integer();
3> PHP5 引入类的类型提示(type hint),用来约束一个方法的参数类型(不是基本数据类型,而是类):将类名放在需要约束的方法参数之前.
例如: function write( ShopProduct $shopProduct){}

4> instanceof 操作符: 如果左边操作数的对象是右边操作数所示的类型,结果为true
例如: if( $shopProduct instanceof BookProduct ) {}

5> 继承 class son extends parent{}
要调用父类的方法, 比如构造函数,用 parent::__construct();

6> 静态方法和属性
class StaticExample{
static public $a;
static public function hello(){}
}
外部访问使用::
例如: print StaticExample::$a;
内部访问使用self::
例如: self::$a;

7> 抽象类, 抽象方法
abstract class xxx{
...
abstract function write(); //没有{}
}

抽象类的子类要重新声明方法并实现之. 新实现的方法的访问控制不能比抽象方法的访问控制更严格.

8>接口 interface
只定义功能,不包含实现. 接口中可以包含属性和方法声明,但方法体为空;
例如: interface a{
public function b();
}
任何实现接口的类都要实现接口中定义的所有方法,否则就必须是抽象类.
类在声明中使用implements来实现某个接口.
class Shop implements a{
public function b(){
...
}
}

9> 异常 exception
PHP5引入异常类

10>拦截器 interceptor
__get($property); 访问未定义的属性时被调用
__set($property,$value); 给未定义的属性赋值时被调用
__isset($property); 对未定义的属性使用isset()时被调用;
__unset($property);对未定义的属性调用unset()时被调用;
__call($method, $arg_array); 调用未定义的方法时候被调用
例: __get()的实现

复制代码 代码如下:


function __get($property){
$method="get{$property}";
if(method_exists($this,$method)){
return $this->$method();
}
}

function getName(){ return "Bob";}

function __isset($property){
$method="get{$porperty}";
return(method_exists($this, $method));
}

function __set($property, $value){
$method="set{$property}";
if( method_exists($this,$method)){
return $this->$method($value);
}
}



11> 析构方法 __destruct()

12> __clone(); 与clone关键字的区别
class CopyMe();
$first= new CopyMe();
$second=$first;
// PHP4 : $first和$second是两个完全不同的对象;
// PHP5: $first和$second指向同一个对象
PHP5中, 对象的赋值和传递都是引用.
如果要拷贝,就要用: $second= clone $first; //现在$first和$second是两个完全不同的对象,(by_value copy)
如果要想控制复制, 要通过实现一个特殊方法__clone()

13> 自动加载: __autoload()
PHP5引入__autoload()拦截器方法来自动包含类文件.当PHP遇到试图实例化一个未知类的操作时,会尝试调用__autoload()方法,并将类名当作字符串参数传递给它.
例如一个很简单的自动定位和包含策略:
function __autoload( $classname){
includ_once "$classname.php";
}

====================
14>使用字符串动态引用类

复制代码 代码如下:


$classname="Task";
require_once("tasks/{$classname}.php);
$myObj= new $classname();
$method="getTitle";
$myObj->$method(); //动态方法


15>类函数和对象函数

复制代码 代码如下:


class_exist(); //检查类是否存在
get_declared_classes(); //获得当前脚本进程中定义的所有类(array形式返回)
get_class_methods();//类中所有的public方法列表(array)
method_exist($objname,$method); //对象或类的方法是否存在
is_callable();//对象或类的方法不仅存在,且能访问
get_class_vars(); // 属性
get_parent_class(类或对象名称); //父类
is_subclass_of(); //是否子类,不管接口,接口用 instanceof操作符


16>反射API
由一系列可以分析属性、方法、类和参数的内置类构成,可以动态获取信息,动态调用方法.

到此,关于"PHP面向对象的基础概念"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

方法 对象 属性 接口 代码 类型 基础 概念 动态 参数 学习 函数 控制 不同 两个 子类 字符 字符串 操作数 操作符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖南永感互联网科技有限公司 中国互联网科技工作委员会毛军 互联网为科技 互联网与科技发展 互联网与未来科技 广州紫鲸互联网科技 盛创互联网科技有限公司 农村开互联网科技讲堂 广州优美互联网科技 创业天下互联网科技有限公司 昭通云南众福互联网科技有限公司 未来五年的互联网科技 互联网科技和信息 烟台灵鸽互联网科技有限公司 有人说阿里系是互联网科技企业 互联网与数字科技关系 抖集互联网科技技术咨询 互联网金融运营模式中的金融科技 互联网企业和网络科技有限公司 科技互联网企业在行动 互联网科技企业 博彦科技互联网金融 互联网科技工作委员会毛军 银优互联网科技有限公司 中正互联网科技招聘 金融科技与互联网金融相同和不同 科技互联网大厂 烟台灵鸽互联网科技有限公司 四川互联网展示科技馆设计 如何强化互联网金融科技
0