<p style="margin-left: 30px">编程界不论是PHP、Python都有这么两种编程思想,oop面向对象、pop面向过程,这两种在功能上没有多大区别,但是在代码编写上却有很大区别。今天就记录一下面向对象和面向过程的优点、缺点、定义、实现过程。
功能的抽象模型,在应用当中类需要实例化也就是new
属性或函数的访问权限达到保护作用
属性、方法、实例化。
性能比面向过程低(需要实例化类)
代码demo:
PHP
属性、函数的访问权限,达到保护作用
= '名字' = '男','女'
= 30 = '女公关'
->
父类 子类可以使用父类的公共属性和方法
oop1
(->
父类 子类可以覆盖父类的方法,一个类里可以存在用一个函数名方法,但是参数不一样,结果也不一样
. '覆盖了父级' . . '的结果' '
' 父类 子类可以使用父类的公共属性和方法 oop2 父类 子类可以覆盖父类的方法,一个类里可以存在同一个函数名的方法,但是参数不一样,结果也不一样 . '覆盖了父级' . . '的结果' '
' 功能的抽象模型,实际应用中要先实例化(new)后使用,以下就是实例化类,打印$class看到的结果就是对象 = string(6) "名字" ["sex"]=> array(2) { [0]=> string(3) "男" [1]=> string(3) "女" } } ( '
' 调用公共属性(变量) = -> ( '
' 调用公共函数(方法) -> '
' = ( '
' -> '
' -> = ( '
' ->dump();
' 父类 子类可以使用父类的公共属性和方法 oop2 父类 子类可以覆盖父类的方法,一个类里可以存在同一个函数名的方法,但是参数不一样,结果也不一样 . '覆盖了父级' . . '的结果' '
' 功能的抽象模型,实际应用中要先实例化(new)后使用,以下就是实例化类,打印$class看到的结果就是对象 = string(6) "名字" ["sex"]=> array(2) { [0]=> string(3) "男" [1]=> string(3) "女" } } ( '
' 调用公共属性(变量) = -> ( '
' 调用公共函数(方法) -> '
' = ( '
' -> '
' -> = ( '
' ->dump();
PHP面向对象和面向过程" src="/res/2019/03-02/08/fd83582cbc813fa43e635330d9f1b240.png" alt="PHP面向对象和面向过程" width="1200">
代码执行是从上到下(从前到后),有一个个函数去实现步骤,使用的时候需要一个一个依次调用。
性能比面向对象高(不用去实例化类),将复杂的问题流程化,进而简单化。
代码片段:
PHP
数据库连接方式
db(
= 'host' => 'localhost', 'username' => 'root', 'password' => 'root', 'databases' => '', 'port' => 3306, 'conding' => 'utf8'
=
(() && ( = (, = MysqLi_connect(['host'],['username'],['password'],['databases'],['port' (MysqLi_connect_errno( ('MysqL数据库连接失败,错误代码ERROR:' . MysqLi_connect_errno MysqLi_query("SET NAMES '{$condig}'",$link);
MysqLi_select_db($config['databases'],$link);
sql = 'select * from niuniu_user limit 1' = MysqLi_query(,sql = MysqLi_fetch_array(,MysqLI_ASSOC);
(MysqLi_num_rows() > 1 ( [] = } =
(
MysqLi_close(
'面向过程的数据库连接方式
' = 'host' => '172.17.0.2', 'username' => 'root', 'password' => 'cuiyuanxin66666', 'databases' => 'nndb' db();
' = 'host' => '172.17.0.2', 'username' => 'root', 'password' => 'cuiyuanxin66666', 'databases' => 'nndb' db();
代码已上传GitHub:https://github.com/cuiyuanxin/PHP-demo
错误请评论提出,谢谢。