第一范文网 - 专业文章范例文档资料分享平台

PHP核心知识要点

来源:用户分享 时间:2025/10/8 16:54:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

0你Mysql扩展库,PHP操作mysql

PHP操作mysql数据库的主要扩展库:mysql(面向过程),mysqli(面向过程和对象),pdo(面向对象)

配置mysql扩展库:php.ini加载extension,配置扩展路径extension_dir

PHP操作mysql:原理,连接数据库(mysql_connect[host,user,pass,new_link]),关闭连接(mysql_close),选择数据库(mysql_select_db),发送sql(mysql_query,不同类型sql的返回值不同),解析结果集资源(mysql_num_rows结果集行数,mysql_fetch系列获得结果集中数据,结果集指针,遍历结果集)

其他相关函数:受影响行数(mysql_affected_rows),新增数据的ID(mysql_insert_id),设置结果集指针(mysql_data_seek)

注册成功跳转功能,分页功能(一次性获取,按页获取)

HTTP协议:超文本传输协议,b/s架构项目遵循的基本协议,浏览器服务器通信的基本原理(请求连接(TCP/IP协议),连接成功,浏览器发送请求,服务器处理请求,浏览器处理结果,关闭连接),HTTP协议两部分(请求,响应),url,特点(支持客户/服务器模式,简单快速[只需请求方法和路径],灵活[任意数据],无连接[每次连接只处理一个请求],无状态[事务处理没有记忆能力])

HTTP请求:四部分(请求行,请求头,空行,请求主体),请求行(请求方式,请求文件,协议/版本),请求头(host,accept-encoding,referer,connection,accept-language,cookie,user-agent,accept,content-length(post),if-modified-since(get),content-type(post)),空白行,请求主体(post请求数据),telnet模拟请求

HTTP响应:四部分(状态行,响应头,空行,响应主体),状态行(协议/版本,状态码,状态说明),响应头(server,date,last-modified,content-length,content-type,location,refresh,content-encodeing,cache-control),空行,响应主体(内容),header之前不能输出,header设置cookie

函数调用前不能输出的函数:session_start,setcookie,header,output_buffering 常用回应状态信息:1XX(服务器接收请求,继续处理),2XX(成功,200),3XX(重定向,302重定向,304没有修改),4XX(请求错误,404找不到,403禁止),5XX(服务器错误,502无效响应)

PHP模拟响应和请求:响应(跳转,刷新,发送图片,下载(application/octet-stream,content-disposition:attachment;filename),请求(fsockopen,fwrite,feof,fgets,get请求,post请求)

面向对象:面向过程(操作流程)和面向对象(操作主体),oop(一种软件设计架构思想) 基本概念:类(对象的抽象),对象(类的实例化/类类型(自定义数据类型)),实例化,成员(类中的变量,函数,常量) 语法操作:定义类(class),实例化(new,带括号,不带括号),强制转换(object),stdClass(空类),访问修饰限定符(var,public,protected,private,区别),对象访问成员(->),类中成员只有三个(属性,方法和常量,不能echo),属性定义的值必须是固定值,如何访问私有属性(方法,$this)

内存说明:类,对象,方法,属性(从空间使用上划分,非内存划分) 魔术方法:构造方法(初始化),析构方法(释放资源,unset对象),构造方法私有化 构造方法兼容:类名方法

大小写区分:属性,数组下标和变量

对象传递:引用传递

对象比较:==(同类对象且属性值相同),===(同一对象) DB类:类文件命名(类名.class.php) 作业:封装getAll和getRow方法

自动加载:实例化对象前必须有类定义,自动加载(__autoload),自动加载原理,自动加载冲突(spl_autoload_register) 类常量:定义(const),内存划分,访问(类访问,范围解析操作符,对象访问(方法)),self关键字,self和this区别 静态成员:定义(static),属性,方法,访问(范围解析操作符),静态属性与常量的访问区别

对象计数器制作:思路

静态方法与非静态方法区别($this) 魔术方法:__toString()(echo对象),__clone()(复制成不同对象,克隆不走构造方法,阻止克隆(private))

单例模式:概念(一个类只有一个对象),原因(省资源),原理(三私一公) 工厂模式:概念(产生对象),原因(方便管理),工厂单例模式 面向对象不一定有类(js)

Oop三大特性:封装,继承,多态

封装:数据和数据操作,制作类的过程,隐藏对象的属性和实现细节(私有化),对外提供使用接口(限制读和写)

继承:一个对象直接使用另一个对象的属性和方法,减少代码的重复性 多态:接口的多种不同的实现方式,PHP中没有 继承:语法(extends),继承原理,继承成员控制(protected),继承访问(子类访问父类,父类访问子类)

继承冲突:重写,控制级别(子类弱于父类),访问父类同名方法(parent) PHP单继承,链式继承(多继承),继承的使用(表类继承DB类) 特殊类:不能被继承的类和只能被继承的类,final类,final方法(可以被继承但不能别重写),abstract类(不能实例化),abstract方法

项目设计:项目大,团队多(接口规范,抽象类规范),项目小(不使用) 接口:专门规定类的结构,语法(interface),接口体(常量和方法,不能实现方法,只能public),实现接口(implements),子类必须实现接口所有方法,实现多个接口 面试题:PHP是否支持多继承?如何模拟?接口是不是类?接口是不是抽象类? PHP重载:用户操作不存在或者不可用的成员属性或者方法时的处理 属性重载:__get(),__set(),__isset()(isset和empty时调用),__unset()(unset调用) 方法重载:__call(),__callStatic()

重载意义:限定用户操作的条件,纠错 作业:最大公约数(辗转相除)

对象保存与还原:file_put_contents保存,file_get_contents获取,对象不能直接保存 序列化:serialize

反序列化:unserialize,PHP_Incomplete_Class,得不到原对象原因(资源释放),引入类文件即可得到原对象,自动加载类,数据库连接失效 对象保存与还原:__wakeup(),__sleep()

对象判断:instanceof,继承对象同属于子类和父类

对象涉及方法:class_exists,interface_exists,method_exists,get_class(得到对象类名),

get_parent_class(得到父类名) 对象遍历:属性遍历,常规foreach遍历,类内foreach遍历($this),类内具体属性遍历(iterator预定义接口) 【PDO】:PDO,功能(方便移植),原理,配置(扩展) PDO主要类:PDO(数据库连接,sql传输),PDOStatement(结果集,预处理),PDOException(PDO异常处理)

PDO类:构造函数(dsn数据源,用户名,密码),对象销毁(没有提供,unset,null),执行SQL(无结果集exec(增删改),lastInsertId;有结果集PDOStatement query),错误处理(errorCode,errorInfo)

PDOStatement类:相关函数(rowCount,columnCount),遍历结果集(fetch[FETCH_ASSOC,FETCH_NUM,FETCH_BOTH,FETCH_OBJ,FETCH_BOUND],bindColumn,fetchAll,fetchColumn,fetchObject,setFetchMode),预处理(prepare,execute[array参数],bindParam[推荐,先绑定后赋值],bindValue[不推荐,先赋值后绑定,每次都要绑定]),事务处理(beginTransaction,commit,rollBack)

PDO属性设置:setAttribute,getAttribute,属性名与值(PDO::ATTR_AUTOCOMMIT(1,0),PDO::ATTR_CASE(PDO::CASE_LOWER,PDO::CASE_UPPER,PDO::CASE_NATURAL),PDO::ATTR_ERRMODE(PDO::ERRMODE_SILENT,PDO::ERRMODE_WARNING,PDO::ERRMODE_EXCEPTION),PDO::ATTR_PERSISTENT(TRUE,FALSE)) PDOException类:try-catch-throw

反射:reflection反射机制,反射(ReflectionClass::export(类)),反射类内部(new ReflectionClass(类),getConstants,getProperties,isStatic,getMethods)

Ecshop安装:虚拟主机,gd库扩展,配置数据库,配置后台管理员,安装测试数据,访问后台

购物系统:仿造ecshop制作一个小型的商品管理与购物系统 功能:后台用户登录(表单,session,cookie,验证码),商品分类管理(无限极分类),商品管理(文件处理,缩略图,水印处理,分页,商品批量管理,所见即所得编辑器使用),时间允许(前台商品浏览,购物车动作,用户管理等)

设计项目:从项目管理者角度设计项目(项目架构(框架,源码,开发模式),代码结构(项目目录划分,功能划分)

当前流行开发模式:二次开发,框架开发

数据架构:数据大小,更新频率;两大数据库阵营(SQL,NOSQL),初级架构(表,表功能,表结构,表内数据关系) 前台和后台:前台(用户看,显示数据),后台(管理员看,管理数据),前后台按功能划分,美工和程序员按工作内容划分 项目目录结构,代码分部:项目分前台后台,admin为后台目录;前后台公共部分前台includes下,后台公共文件admin/includes,前后台都有默认访问入口index.php

项目代码设计:数据是核心,代码是访问和管理数据;数据存放在mysql里,PHP通过db.class.php访问数据库(includes下);逻辑与显示分开;公共功能用类封装(文件上传,图片处理,分页)

后台用户登录功能设计:登录表单(登录,验证码,退出,找回密码,记住密码),admin/templates/login.php,代码由简单到复杂;一类事务请求一个PHP文件(登录:admin/privilege.php)

后台项目初始化:运行环境(错误级别,错误显示),基本目录常量,配置文件系统,公共代码(自动加载函数,跳转等),admin/includes/init.php

Admin/includes/init.php:编码设置(header),目录常量(__DIR__,反斜杠处理,ROOT_DIR,ADMIN_DIR,INCLUDE_DIR,ADMIN_INCLUDE_DIR,ADMIN_TEMPLATE_DIR),5.3低版本目录常量(__FILE__)

配置文件系统:/config/config.php,数据库连接信息,二维数组(便于区分)

加载配置文件:admin/includes/init.php,配置文件目录常量,配置文件全局化($GLOBALS[‘config’])

运行环境设置:ini_set()(error_reporting,display_errors),错误级别关系 登录界面:从ecshop拿,js文件,image文件,css文件

登录功能:privilege.php实现,引入初始化文件,引入login.php文件,action(区分动作),if分支判断动作

用户登录表单设计:请求privilege.php,设计隐藏域act,$_REQUEST(GPC,request_order,variables_order)

验证用户信息:设计管理员表(库,表,字段(id,用户名,密码,注册时间,上次登录时间和IP)),插入一条数据,接收用户提交数据进行验证,数据库操作(使用DB类,每张表一个类(/includes/adminTable.class.php))

表类设计:继承db类,属性(table_name,fields) 验证调用表类:自动加载(/includes/function.php),初始化文件引入公共函数库,实例化表对象(传入数据库连接信息,连接数据库),修改实例化方式(db类中自动调用配置文件),使用用户名和密码验证用户(正确得到用户信息,错误返回FALSE),修改用户密码(md5加密)

工作原理分析:用户请求到得到验证结果

验证结果处理:界面跳转(PHP中header,js中document.location.href,HTML中refresh),创建跳转模板/admin/templates/redirect.php,跳转函数admin_redirect在/includes/function.php,privilege中调用跳转函数

验证用户是否登录:定义变量判断,get传参,会话数据 开启会话机制:默认关闭(php.ini的session.auto_start),session_start开启,$_SESSION(访问会话数据),session实现用户登录判断

Session原理:session_start()开启session并读取session文件内容到$_SESSION,脚本结束将$_SESSION内容写到session文件,然后释放$_SESSION变量 会话周期:浏览器关闭session失效,浏览器与服务器会话流程

Cookie会话技术:服务器在浏览器保存数据,cookie原理,session与cookie的区别 Cookie使用:设置cookie,获得cookie($_COOKIE和$_REQUEST),修改$_COOKIE(再次访问无效),cookie变量有效期,session失效原理,清除cookie(setcookie),cookie目录区分,cookie跨域,cookie变相保存数组

Session文件:存储(php.ini中session.save_path)

Cookie文件:浏览器指定的存储目录,IE和FF区别,FF查看cookie文件

Session登录判定:用户登录时session记录用户信息,index.php中判定session信息,初始化文件开启session

模拟session实现跨脚本

框架布局后台:使用ecshop后台布局,index.php

Index.php实现:与privilege.php处理方式一致,使用ecshop的模板

退出登录:清楚session,跳转到privilege.php登陆页,top.php(target属性) 用户信息显示:$_SESSION,用户上次登录时间(登录后修改上次登录时间)

Session深入:$_SESSION只能是关联数组,session可以保存对象,session过期受cookie影

搜索更多关于: PHP核心知识要点 的文档
PHP核心知识要点.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4h9q50snel1j03v4iv5u208bi7808n00a8j_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top