PHP学习笔记超大全

时间:2022-12-02 00:17 阅读: 评论: 作者:admin

PHP学习笔记超大全

  php用什么开发工具从PHP5.0开始可以使用mysqli,是一个面向对象的技术(新加功能都会以对象形式添加) i:表示改进,1.功能增加了 2.效率大大增加了(以后的PHP项目改成mysqli)3.更稳定 mysqli使用面向对象技术,但也支持过程化的使用方式 mysql扩张中给我们提供了三个类:

  局部变量:在函数中声明的变量,只能在自己的函数内部使用。 全局变量:在函数外声明,在变量声明以后,知道整个脚本结束前都可以使用,包括在函 数中和{}中都可使用。 PHP的变量分不出是声明还是使用,在PHP中使用全局变量 要通过global关键字将这个全局 变量包含到函数中才能使用到,在global声明之后才是使用全局的变量 参数就是局部变量,这个局部变量可以调用时去赋值。

  请求: 1.HTTP 1.1 协议 版本 2.头信息 3.你请求得表单信息,你提交给服务器的信息 响应 1.状态 200 ok 404 页面没找到 2.相应头信息 3.数据发送给

  1.语法错误 2.运行时的错误 3.逻辑错误 错误报告: 错误 E_ERROR 警告 E_WARNING 注意 E_NOTICE 开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试

  1.是对象创建完成以后,第一个自动调用的方法 2.构造方法的定义,方法名是一个固定的 在PHP4中和类名相同的方法就是构造方法 在PHP5中构造方法使用 魔术方法 __construct()所有类中声明构造方法都使用这个名称 优点:在改变类名时,构造方法不用改变 魔术方法: 在类中写出了某个魔术方法,这个方法对象的功能 就会添加上 方法名称都是固定的(都是系统给我们提供好的),没有自己定义的, 每一个魔术方法,都是在不同时刻为了完成某一个功能自动调用的方法 不同的魔术方法都有不同的调用时机 都是 __开头的方法 __construct() __destruct() __set()

  1.模板引擎只是使用PHP开发的一个项目 PHPlib 公司内部都有自己的模板引擎 不需要自己去写模板引擎 怎么用 谁在用 Smarty 美工人员 1.写模板,HTML CSS JavaScript 2.使用Smarty表现逻辑(放变量,遍历和判断数据) PHP程序员 1.PHP程序员和原来一样(连接数据库,图,文件) 2.加载Smarty引擎,并创建对象 3.向引擎中分配变量(分数据) 4.显示那个模板 Smarty安装 Smarty初始化 Smarty使用注意事项 1.因为我们访问的是PHP文件, 而模板是在PHP中包含的内容, 所以在模板中使用图片, CSS文件,js文件都要以访问的PHP目录为主 2.所有display模板时(还是模板中的include),都要以smarty对象中指定的模板目录为 基目录 3.如果想让各个目录下的PHP程序都可以加载Smarty指定的模板和编译目录,唯一的办 法是使用绝对路径

  一、使用mysqli执行多条语句 A、就是没有没有结果集 B、多条语句有结果集 二、使用mysqli完成事务处理 事务处理 一件事(有任何一个环节出错,都将整个事务撤消,如果都成功才去提 交)

  网上买卖东西 张三向李四买了一个电脑,花了8000元 目前只有InnoDB和BDB支持事务(MyISAM) 默认表都是自动提交的(autommit) 1.关闭自动提交 2.start 事务 三、其他的mysqli类中的成员使用

  Each()函数 a.需要一个数组作为参数 b.返回来的也是一个数组 c.返回来的数组是0,1,key,value四个下标(固定的) 0和key下标是当前参数数组元素的键 1和value下标是当前参数数组元素的值 D.默认当前元素是第一个元素 E.每执行一次后就会将当前元素向后移动 F.如果到最后的元素再执行这个函数,则返回false List()函数 a.List()=array() ; 需要讲一个数组赋值给这个函数 b.数组中的元素个数,要和list()函数中的参数个数相同 c.数组中的每个元素值会啊赋值给list()函数中的每个参数,list()将每个参数转为变量 d.list()只能接收索引数组 e.按索引的下标的顺序 使用数组的内部指针控制函数 Next(数组); Prev(数组); Reset(数组); End(数组); Current(数组); Key(数组);

  1.Smarty是以变量为主 2.在Smarty模板中不是调用函数,是以自定义标记(类似HTML标记)的使用形式 写函数就是自己定义一个类HTML标记 一种是使用注册的方式,注册函数和块,另一种是使用Smarty插件的功能加入函 数和块

  1.什么是Smarty中变量调解器 了解调用方式 1.在Smarty文件中的变量后面使用“”后面加函数名,这个函数第一个参数就是这 个变量,如果有其他参数,使用“:”加参数,多个参数使用“:”分开 2.组合调解器的使用

  FreeType Typ1 宋体。。。。。 开发一个验证码类 1.什么事 验证码 2.验证码的作用 3.编写验证码类(PHP图像处理) 4.使用验证码

  函数的定义: 1.函数是一个被命名的 2.独立的代码段 3.它执行特定的任务 4.并可以给调用它的程序返回一个值 函数的优点: 1.提高程序的重用性 2.提高程序的可维护性 3.可以提高软件的开发效率 4.提高软件的可靠性 5.控制程序的复杂性 函数的声明 function函数名() { 函数体 } function函数名(参数1,参数2,参数……) //参数列表,如果有多个就用作,分开 { 函数体 } function函数名() { 函数体 返回值; } function函数名(参数列表) { 函数体 返回值; } (1)形参:在声明函数时,声明的参数,参数就是变量,多个参数用,分开 (2)实参:调用函数时传给形参的值(数据,也可以是变量)

  什么是会话控制? HTTP—无状态 1.变量只能在一个页面中使用 page级 2.Get和post方法传递,两个页面之间的传递(不是跟踪用户的首选) 3.将变量存到文件或数据库中(所有人共用变量,也不是跟踪用户的首选) 跟踪用户 让一个用户访问每个页面,服务器都知道是那个用于在访问 4.session级 为什么要使用会话控制? Cookie技术 服务器给客户端的礼物 就是借助客户端电脑的一个文件来保存这个用户信息,再访问同一个网站的各个页面 都会带这些信息过去,服务器在每个页面只要通过这些信息就能区分用户 Session技术 是在服务器端保存用户信息

  1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细 节 Public protected Private 私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问),不能在 对象外部使用 属性可以封装: 只要一个变量,需要在多个方法使用,就将这个方法声明为成员属性,可以直接在这个对 象中的所有方法中使用 成员属性,就相当于这个对象中的全局变量 成员属性都会在方法中使用,成员属性值的变化其实在改变方法的执行行为,也就是改变 了对象的功能 成员属性的值如果不正常,方法执行的功能也就不正常 作用:不需要在对象外部改变或读取他的值 1.封装 再提供一个公有的方法(经过方法对象成员属性进行赋值和取值就可以控制) 方法也可以封装 作用: 1.使用private修饰使其只能在内部使用 2.一个类中有100个方法,封装了95个(为另外5个服务的方法),只有5个方法可以使 用 和封装有关的魔术方法: __set() :是直接设置成员的属性时,自动调用的方法 __get():是直接获取成员属性时,自动调用的方法 __isset():是直接isset()查看对象中私有属性是否存在时自动调用这个方法

  读取文件中的内容 File_get_contents(); //PHP5以上 File() Readfile() 不足: 全部读取,不能读取部分,也不能指定区域 Fopen(URL,mode) Fopen(“”,”r”) r 以只读模式打开文件 r 写 w 以只写的方式打开,如果文件不存在,则创建这个文件,并写入内容,如果 文件存在,并原来有内容,则会清除原有文件中所有内容,再写入(打开已有的重要文件) w 除了可以写用fwrite,还可以读fread a 以只写的方式打开,如果文件不存在,则创建这个文件,并写入内容,如果 文件存在,并原来有内容,则不清除原有文件内容,在原有内容的最后写入新内容(追加) a 除了可以写用fwrite,还可以读fread b 以二进制模式打开文件(图,电影) t 以文本模式打开文件 Fread() Fgetc() Fgets() //读取指定长度的字符 //一次从文件中读取一个字符 //一次从文件中读取一行字符

  文件的操作:创建文件,删除文件,重命名,大小,移动复制等 读取(都有PHP内置函数) 目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数) 1.目录的遍历 opendir() readdir() closedir() rewind() 2.目录的创建 Mkdir() //创建一个空目录 3.目录的删除 Rmdir() //只可以删除一个空目录 4.目录的复制 5.统计目录的大小

  MySQL视图 一、什么是视图 视图是存放数据的一个接口,也可以说是虚拟表,这些数据可以是从一个或 多个基表(视图)的数据,也可以是用户自己定义的数据,其实视图里面不存放数据,数据还 是存在基表里面,基表数据发生变化,视图里面的数据也随之变化,视图里数据变化,基表也 会变化。 二、视图的作用 1.视图可以让查询变得很清楚(让复杂的SQL语句变得很简单) 2.保护数据库的重要数据,给不同的人看不同的数据 三、创建视图 Create [or replace] [algorithm={temptableundefined}] View view_name [(colum_list)] As select_statement [width [cascadelocal] check option] 视图有三种类型 Merge:会将引用视图的语句的文本与视图定义结合起来,使得视图定义的 某一部分取代语句的对应部分 Temptable: Undefined:megre Algorithm=merge With local check option [local] 只要满足本视图的条件就可以更新

  With cascaded check option [cascaded]则必须满足所有针对视图的条件,才 可以更新 四、视图的操作 五、更改视图 六、删除视图 七、查看视图 八、视图在WEB开发中的应用(PHP中使用视图)

  三个类: PDO类,和数据连接有关的类(连接,执行SQL语句) PDOSatement类 准备语句,处理结果集 PDOExpection 异常类 很多个常量 会使用以上部分就会使用PDO 创建PDO对象 Desn(data source name)数据源 主机位置和库名,连接那种数据库的驱动

  1.当对象被释放之前最后一个“自动“调用的方法 使用垃圾回收器(java PHP) 而C手动的释放 作用:关闭一些资源,做一些清理的工作 __destruct()

  自动全局变量---超全局数组 1.包含了来自web服务器,客户端,运行环境和用户输入的数据 2.这些数组比较特别 3.全局范围内自动生效,都可以直接使用这些数组 4.用户不可以自定义这些数组,但这些数组的操作方式又和我们自己定义的数组操作方式 一样 5在函数中可以直接使用这些数组. $_GET $_POST $_REQUEST $_FILES $_COOLIE $_SESSION //经由URL请求提交至脚本的变量 //经由HTTP POST方法提交至脚本的变量 //经由GET,POST和COOKIE机制提交到脚本的变量,因此该数组不值得 信任,不去使用(尽量) //经由HTTP POST文件上传而提交至脚本,文件上传 // //

  Alter table change(modify) 数据定义语言(DDL):CREATE DROP ALTER 用于定义和管理数据对象(库,表,索引,视图 ),包括数据库、数据表等。例如: CREATE、DROP、ALTER等语句 INSERT UPDATE DELETE 数据操作语言(DML):和表中的数据记录 用于操作数据库对象中所包含的数据。例如:INSERT、UPDATE、DELETE语句。 SLECT 60% 数据查询语言(DQL): 用于查询数据库对象中所包含的数据,能过进行单表查询、连接查询、嵌套查询,以 及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示。例如:ELECT 语句。 数据控制语句(DCL) 是用来管理数据库的语言, 包含管理权限及数据更改。 例如GRANT、 REVOKE、 COMMIT、 ROLLBACK等语句。 对于程序员来说 创建表(为项目设计表) 增,删,改,查 插入表数据insert Insert into 表名(字段列表)values(值列2),(列表3)。。。。 特点: 1.如果在表名后没有给出字段列表,则值列表必须列出所有字段的值,必须按表 中默认的顺序插入 2.所有需要字段名的地方都不要加单引号或双引号,但所有值都要以字符串形式 使用 3.建议在插入数据时,最好给出字段列表,则值要和字段列表对应即可,可以不 按表中字段的顺序 Update 表明 set 字段=’值’ [,字段2=值2 [,/….]] [条件] 条件是确定要更改的记录,可以通过条 件制定一条也可以指定多条 Delete from 表明 [条件] Where Select 都可以使用 各种运算符号(可以把字段当作一个变量) 只要你想更新、删除、查找,只要写对条件就能准确找到Hale Waihona Puke Baidu管理的一条或多条语句

  语法: 1.定界符号 // 除了字母、数字和反斜线\以外的任何字符都可以为定界符号 / / { } ! ! 没有特殊需要,我们都是用正斜线作为正则表达式的定界符号 2.原子 img \s . 注意:原子是正则表达式的最基本组成单位,而且必须至少要包含一个原子 只要正则表达式可以单独使用的字符,就是原子 1.所有打印(所有可以在屏幕上输出的字符)和非打印字符(看不到的) 2. \. \* \ \? \ ( \ \如果所有有意义的字符,想作为原子使用,统统使 用”\”转义字符转义 “\”转义字符可以将有意义的字符转义成没意义的字符,开可以将没意义的字符转 为有意义的字符 3.在正则表达式中可以直接使用一些代表范围的原子 \d:表示任意一个十进制的数字 [0-9] \D:表示任意一个除数字之外的字符 [^0-9] \s:表示任意一个空白字符,空格、\n\r\t\f [\n\r\t\f] \S:表示任意一个非空白 [^\n\r\t\f] \w:表示任意一个字a-z A-Z 0-9 _ [a-zA-Z0-9] \W:表示任意一个非字,除了a-z A-Z 0-9 _ [^a-zA-Z0-9] 4.自己定义一个原字表[],可以匹配方括号中的任何一个原子 [a-z5-8] [^]表示取反,表示除了原子表中的原子,表示都可以(^必须在[ ]内的第 一个字符处出现) 3.元字符 * ? 元字符是一种特殊的字符,是用来修饰原子用的,不可以单独出现 *:表示前面的原子可以出现0次,1次,或多次 {0,} :表示其前面的原子可以出现1次或多次,不能没有最少要有一个 {1,} ?:表示其前面的原子可以出现0次或一次,有只能有一次,要么没有 {0,1} . :默认情况下,表示除换行符外任意一个字符 ^:直接在一个正则表达式的第一个字符出现,则表达式必须以这个表达死开 始 $:直接在一个正则表达式的最后一个字符出现,则必须以这个正则表达式结 尾 :表示或的关系,它的优先级别是最低的,最后考虑它的功能 {}:用以自己定义前面原子出现的次数 {m} //m表示一个整数,{5}表示前面的原子出现5次 {m,n} //m和n表示以一个整数,m要小于n,表示前面出现的原子最少m 次最多n次包括m次n次 {m,} //表示前面的原子最少出现m次,最多无限 ():重点

  (数组的数组,就是在数组中存有其他的数组) 2.PHP中有两种数组 索引数组:就是下标是顺序整数作为索引 关联数组:就是下标是字符串作为索引 下标(整数,字符串)只有两种

  1.直接为数组元素 a.如果索引下标不给出就,就会从0开始顺序索引 b.如果给出索引下标,下一个就会从最大的开始曾1 c.如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值 混合声明时,索引和关联不互相影响(不影响索引下标的声明) 2.使用array()函数 A.默认是索引数组 B.如果为关联数组和索引数组指定下标,使用键=值 C.多个成员之间使用,分割 3.使用其他的函数声明

  一、()作用:是作为大原子使用 二、改变优先级,加上括号可以提高优先级别 三、作为子模式使用,正则表达式不光对一个字符串匹配一次,全 部匹配作为一个大模式,放到数组的第一个元素中,每个小括号是一个子模式到安顺序放到数 组的其他元素中 四、可以取消子模式,就将他作为大原子或改变优先级使用,在括 号中最前面使用”?:”就可以取消这个()表示的子模式 五、反向引用,可以在模式中直接将模式取出来,再作为表达式模 式的一部分,如果是在正则表达式像替换函数perg_replace函数中,可以将子模式取出,在被替 换的字符串中使用 \1 取第一个子模式 \2取第二个子模式,…… \5(注意是单引号 还是双引号引起来的正则) “\\1” ‘\1’ ${1} ${2} \b:表示一个边界 \B:表示一个非边界 \* \. \ \? 优先级高低 \ () (?:) [] * ? {} ^ $ \b 元字符是一种特殊的字符,是用来修饰原子用的,不可以单独出现 4.模式修正符号 I u “/ /模式修正符” 1.就是几个字母 2.可以一次使用一个,每一个具有一定的意义,也可以连续使用多个 3.是对整个正作为表达式调优使用,也可以说十岁正则表达式功能的扩展 “/abc/” 只能匹配小写字母 abc “/abc/i” 可以匹配不区分大小写 i:表示在和模式匹配时,不区分大小写 m:默认情况,将字符串视为一行 ^ $视为多行后任何一行都可以以正则开始或结 束 s:如果没有使用这个模式修正符号时,元字符中的“.”默认不能表示换行符号,将 字符串视为单行 x:表示模式中的空白忽略不计 e:正则表达式必须使用在perg_replace替换函数中时才可以使用 A: Z: U:正则表达式的特点就是比较贪婪 .* .所有字符都符合这个条件 一种是使用模式修正符 U 另一种是使用?完成 .*? .? 如果两者方式同时出现,有开启贪婪模式 .*? /U 有些语言中不支持模式修正符号 javascript

  三、MySQL的架构 c/s client / server MySQL DBMS 客户端 服务器 -- 数据库 -- 数据表(记录,字段) 都可以使用工具完成 四、PHP程序员主要学习那些数据库的操作 DBA 程序员 一、为你的项目设计表

  MySQL服务器,数据库,数据表,字段 数据库中的UTF-8 utf8 MySQL的字符集包括 字符集:是用来定义MySQL存储字符的方式 36 校对规则:是对规则定义的比较字符串的方式 一对多的关系:1个字符集可以对应多个校对规则

  接口 接口技术 因为在PHP中类是单继承的,如果使用了抽象类,子类实现完抽象类不能再去继承其他的 类了。 如果既想实现一些规范,又想继承一个其他的类,就要使用接口 接口和抽象类的对比 1.作用相同,都不能创建对象,都需要子类去实现 2.接口的声明和抽象类不一样 3.接口被实现的方式不一样 4.接口中所用的方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰) 5.接口中的成员属性只能声明常量,不能声明变量 6.接口中的成员访问权限都必须是public,抽象类中最低的权限是protected 7.使用一个类去实现接口,不是使用extends关键字,而是使用implement这个词 如果子类是重写父方法中抽象方法,则使用implements,类—接口,抽象类—接口 implement接口---和接口 extends 可以定义一个接口去继承另一个接口 可以使用抽象类去实现接口中的部分方法 如果想让子类可以创建对象,则必须实现接口中的全部抽象方法 一个类可以去实现多个接口(按多个规范去开发子类),使用逗号分隔多个接口名称 一个类可以在继承一个类的同时,去实现一个或多个接口(先继承,再实现) 使用implements的两个目的: 1.可以实现多个接口,而extends只能继承一个父类 2.没有使用extends词,还可以去继承一个类,所以两个词可以同时使用

  __sleep(): 在序列化时自动调用的方法 作用:就是讲一个对象部分串行化 只要这个方法中返回一个数组,数组中有几个成员属性就序列化几个成 员属性,如果不加这个方法,则所有成员都被序列化 __weakup(): 在反序列化时自动调用的方法 也是对象重新诞生的一个过程(__construct(),__clone(),__wakeup()) __autoload() 注意:其他的魔术方法都是在类中添加起作用,只是一个唯一一个不再类中添加的方 法 只要在页面使用到一个类,只要用到类名就会自动将类名传给这个参数 __clone() 克隆对象使用clone去处理 原来(原来的对象) 副本(复制出来的对象) __clone()就是在克隆对象时自动调用的方法 只要一个对象一诞生,就要有初始化的动作,和构造方法作用相似 在__clone()方法中的$this关键字,代表的是副本$that代表原本关键字

  Create table () engine InnoDB 选择MyISAM还是选择InnoDB 注意:在一个MySQL库中可以(创建表时)指定不同的表类型 MyISAM 表类型 OPTIMIZE TABLE 表名 强调快速读取操作 也有缺点:有一些功能不支持 InnoDB 表类型 支持一些MyISAM所不支持的功能 也有缺点:占用空间大 功能 事务处理 数据行锁定 外键约束 表空间占用 全文索引 MyISAM 不支持 不支持 不支持 相对小 支持 InnoDB 支持 支持 支持 相对大 最大2倍 不支持

  Mysqli_stmt与处理(推荐使用) 和mysqli和mysqli_result相比优点 1.mysqli和mysqli_result能完成的功能,都可以使用mysqli_stmt完成 2.效率上:高,就是如果执行多次相同的语句,只有语句数据不同,因为将一条 语句在服务器端准备好,然后将不同的值传给服务器,在让这条语句执行 编译一次,使用多次 3.安全上:SQL注入(?占位),后期传的值不会当成SQL语句 效率高,安全,这是我们使用mysqli_stmt的原因,所以推荐你使用

  所有的文件处理都是使用系统函数完成的 是基于Linux/Unix系统为模型 文件系统处理的作用 1.所有的项目都离不开文件 2.可以用文件长时间保存数据 3.建立缓存,服务器中文件操作

  一、函数必须调用才能执行,可以在声明之前调用,也可以在函数声明之后调用 二、函数名命名和变量一样,aaa bbb ccc aaaBBBCcc,函数名称一定要有意义 三、函数在声明时不能重名

  四、可以通过向函数传递参数,改变函数的行为 五、如果没有返回值则称为过程 六、通过使用return语句返回数组 七、函数执行到return语句就结束,所以不要再这个语句后写代码,也可以用return结束函数执 行 函数名的作用: 1.调用函数,开始执行函数 2.可以向函数中传递数据 3.函数名就是返回的值

  抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或接口 声明抽象类和接口,以及一些需要的技术 抽象类 什么是抽象方法? 定义:如果一个类中的方法,没有方法体的方法就是抽象方法(就是一个方法没有使 用{}而直接使用分号结束) Abstract Function test(); //抽象方法 Function test() //有方法体,但方法体位空 { } 如果一个方法是抽象方法,就必须用abstract修饰 为什么要使用抽象方法? 什么是抽象类? 1.如果一个类,有一个方法是抽象的者这个类是抽象类 2.如果一个类是抽象类,则这个类必须要使用abstract修饰 3.抽象类是一种特殊的类,就是因为一个类中有抽象方法,其他不变。也可以在抽象 类中声明成员属性,常量,抽象的方法 4.抽象类不能实例化对象(不能通过抽象类去创建一个抽象类的对象), 一、抽象方法没有方法体,不知道做什么的 二、对象中的方法和属性都要通过对象来访问,除常量和静态的变量和方法,而抽象 类有不能创建对象,抽象类中的成员都不能直接访问

  //执行环境提交至脚本的变量 //变量由WEB服务器设定的,或直接和当前脚本的执行环境相关联 //只要是当前脚本有效的变量都在这里,数组键名为全局变量的名称

  通过类来实例化对象 1.使用的是new新建一个对象,加上类名,就是创建那个类的对象 $对象引用=new 类名; 2.是要有一个new关键字就是创建一个对象,创建一个对象就在内存中分配了一个空间 只有对象才在内存有存储空间 对象在内存中的分配

  异常处理:意外是在程序运行过程中发生的意料之外的事,使用异常改变脚本正常流程 PHP5中的一个新的重要特性 Try{ } Catch(异常对象) { } 1.如果try中代码没有问题,则将try中代码执行完成后就到catch后执行 2.如果try中代码有异常发生,则抛出一个异常对象,抛出给了catch中参数

  对象中的成员必须通过对象的引用来访问 对象-成员属性=新值 Echo 对象-成员属性 对象-成员方法 1.对象中成员的访问(就是在一个对象的内部方法中,去访问对象中其他方法和成员) 2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用方法的对象 3.第一人称代词:我

  创建文件:touch(“文件名”) 删除文件 unlink(“文件路径”) 移动文件 重命名文件 rename(“当前文件路径”,”目标文件路径”) 复制文件 copy(“当前”,”目标”)

  1.你要开发的是什么,确定写什么类 2.类中的成员一定要属于这个类 [修饰类的关键字]class 类名 { 成员属性:外观、颜色、电池容量、屏幕尺寸。。。 成员方法:打电话,发信息,播放音乐,拍照。。 } 在类中声明成员属性时,前面必须有修饰词 当不知道使用哪个词时使用var或public,如果知道使用哪一个修饰关词,就不使用var 在创建好对象之后再给值 类中的成员属性,如果创建多个对象时,每个对象有不同的属性值时,不要直接赋初值 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php 自动加载

  1.数组的本质:管理和操作一组变量,成批处理 2.数组是复合类型 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据 4.数组就可以完成其他语言数据结构的功能(链表,队列,栈,集合类)

  数组中存有多个单元,(单元称为元素) 每个元素(下标[键]和值) 单独访问元素的时候,都是通过下标(键)来访问元素 1.一位数组,二位数组,三维数组。。。多维数组

  1.正则表达式就是描述字符串排列模式的一种自定义语法规则 2.如果可以使用字符串处理函数完成的任务,就不要使用正则 3.有一些复杂的操作,只能使用正则完成 正则表达式可以在很多计算机语言中应用 4.正则表达式也成为一种模式表达式 5.正则表达式就是通过构建具有特定规则的模式,与输入的字符信息比较。再进行分割、匹配、 查找、替换等工作 /\img\s*src=\.*?\\/\/ 一、正则表达式也是一个字符串 二、由具有特殊意义的字符组成的字符串 三、具有一定的编写规则也是一种模式 四、可看做一种编程语言(是用一些特殊字符按规则编写出一个字符串,然后形成一种模式— 正则表达式) 注意:如果正则表达式不和函数一起使用,则它 就是一个字符串,如果将正则表达式放入 到某个函数中使用,才能发挥出正则表达式的作用 用到分割函数中,就可以用这个正则去分割字符串 用到替换函数中,就可以用这个正则去替换字符串 。。。 在PHP中给我们提供了两套正则表达式函数库 Perl 兼容正则表达式函数(preg_) POSIX 扩展正则表达式函数(ereg_) 这两个函数功能一样,找一个处理字符串效率高的 注意:推荐使用Perl兼容正则表达式函数(只学这一种) 学习正则表达式时,有两方面需要学习

  Feof($file); 如果读取文件出错,或到文件结束,则返回真 写入文件 File_set_contents(“URL”,”内容字符串”);//PHP5以上 如果文件不存在,则创建,并写入内容 如果文件存在,则删除文件中的内容,重新写入 不足:不能以追加的方式写,也不能加锁 Fopen() Fwrite()别名fputs()

  静态变量只能声明在函数中(类中),不能在全局声明 使用static在变量前 作用:一个变量可以在同一个函数在多次调用中同用 1.静态变量在静态代码段中保存 2.一个函数多次调用之间共用,但只在第一次调用函数时声明到内存,以后再调用,就不 再声明,而直接使用

  变量函数:如果一个变量后有括号$var=hello $var(),就将寻找与变量值同名的函数 hello(); 1.函数的功能---------------决定是否使用函数 2.函数的参数---------------决定函数怎么调用---有几个参数---传什么类型的值。。。。 3.函数的返回值-------------调用后怎么处理这个函数 PHP提供2000多个函数。。。都属于系统函数,都可以通过名称直接使用 一定要先使用系统函数,如果系统函数没有你想要的功能,再去自己定义函数 1.常规函数 bool copy(string source,string dest) 2.带有mixed,mixed表示可以传任何类型的数据 bool chown(string filename,mixed user) 3.带有&参数的函数,表示引用赋值,这个参数不能传值,只能传一个变量,然后函数将变量的 值改变,我们在使用这个变量时,值也是变化的

  Final 1.final不能修饰成员属性(类中的常量不是用这个关键字) 2.final只能修饰类和方法

  作用: 使用final修饰的类不能被子类继承 使用final修饰的方法不能被子类去覆盖 用来限制类不被继承,方法不被覆盖就使用final Static 1.使用static关键字可以修饰成员属性和成员方法,不能修饰类 2.用static修饰的成员属性可以被同一个类的所有对象共享 3.静态的数据是存在内存中的数据段中(初始化静态段) 4.静态的数据是在类被第一次加载时分配到内存中的,以后再用到类时就直接从数据 段中获取 5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现) 注意:静态成员都要使用类名去访问,不用创建对象,不用对象去访问 类名::静态成员 如果在类中使用静态成员,可以使用self代表类($this) 6.静态方法不能访问非静态的成员(在非静态的方法中可以访问静态成员) 因为非静态的成员,就必须用对象来访问,访问内部的成员使用$this 静态方法 不用使用对象来调用,也就没有对象,$this也就不能代表什么对象,非静态 的成员还必须使用对象 如果确定一个方法中不使用非静态的成员,则可以将这个方法声明为静态方法(不用 创建对象,直接使用类名就可以访问) 静态成员:类名::成员,在类内部访问其他成员self::成员 Const 1.只能修饰成员属性 2.类中声明常量属性使用const 3.命名的方式和我们以前学习的define是一样的效果 4.访问方式和static静态成员属性是一样 (在类外使用 类名::常量 在类内部使用 self::常量) 5.常量一定要在声明时就给初值

  __call() 作用:在调用对象中不存在的方法时就会出现系统报错,然后程序退出 什么时候自动调用:在调用一个对象中不存在的方法时自动调用 处理一些不存在方法的错误调用 这个方法需要两个参数: __toString() 直接输出对象引用时自动调用,用来快速获取对象的字符串表示的最快捷的方式 对象串形化(序列化):将一个对象转化为二进制串(对象是存储在内存) 1.将对象长时间存储在数据库或文件中时 2.将对象在多个PHP文件中传输时 Serialize():参数是一个对象,返回来的就是串行化后的二进制串 Unserialize():参数就是对象的而二进制串,返回来就是新生产的对象

  1.执行SQL语句,连接数据库服务器 2.创建数据库xsphpdb 3.选择一个库作为一个默认的数据库 帮助的使用 创建数据表

  1.他也是面向对象的三大特性之一 2.开放性,可扩充性 3.增加代码的重用性 4.提高了软件的可维护性 5.继承就是用子类去“扩展”父类 C属于多继承,同一个类可以有多个父类 PHP和JAVA属于单继承,同一个类只能有一个父类 不管是多继承还是单继承都可以有多个子类 只要你在设计两个类时,有可以共享的成员,就将可以共享的内容拿出来,单独作为一个 基类使用 父类—基类 子类—派生类 作用: 一.类继承的应用 1.声明一个子类,使用extends关键字去继承(扩展)一个父类 2.子类可以从父类继承所有的内容,包括成员属性,成员方法,构造方法。。。在子类中 都可以直接使用 3.类之间的层次关系设计好 二.访问类型控制 虽然子类可以从父类中继承所有内容,但private的成员个人HPH学习,只能在本类中使用,子类中也不 能使用 封装是既可以让自己类的内部可以访问,也让子类可以访问,但类的外部不能使用,只要 将private-protected 三.子类中重载父类的方法 1.子类可以声明和父类相同的方法名,即子类覆盖了父类中同名的方法 子类的方法对父类方法的扩展 在子类中 调用 父类中被覆盖的方法 对象-成员 类::成员 父类名::方法名() Parent::方法名() 在子类中如果编写构造方法,如果父类中也有构造方法一定要去调用一次父类中被覆盖的那个 构造方法 注意:子类中重载的方法,不能低于父类中的访问权限(子类可以放大权限,但不能缩小权限)

  事实上,多态最直接的定义就是让具有继承关系的不同类对象,可以对相同的成员函数调用、 产生不同的反应效果

  字符串的特点 Substr(“string”,2,4); 1.其他类型的数据用在字符串处理函数中,会自动将其转化为字符串后,再处理 2.可以将字符串视为数组,当作字符集合来看待 强大的PHP中内置字符串处理函数

  声明方式: Interface 接口名 { } 作用: 要想使用抽象类,就必须使用一个类去继承抽象类,而且要想使用这个子类,也就是让子 类可以创建对象,子类必须不能再是抽象类,子类可以重写父类的方法(给抽像方法加上方法 体) 抽象方法中的方法没有方法体,子类必须实现这个方法(父类中没写具体的实现,但子类 必须有这个方法名) 就是在定义一些规范,让子类按照这些规范去实现自己的功能 目的:就是要将你自己写的程序模块加入到原来写好的程序中去(别人写好的程序,不能等你 开发完一个小模块,根据你的小模块向下开发) 多态 多态是面向对象的三大特性之一 “多态”是面向对象设计的重要特征,他展现动态绑定(dynamic binding)的功能,也称为“同名 异式“ (polymorphisn) 多态的功能可让软件在开发和维护时, 。 达到充分的延伸性 (extension) 。

  运行阶段: 不要让程序输出任何一种错误报告 (不能让用户看到 (懂技术, 不懂技术) ) 将错误写入日志中 一、指定错误报告 error_reporting=E_LL 二、关闭错误报告 display_errors=Off 三、开启错误日志功能 log_errors=On 1.默认如果不指定错误日志位置,则默认写入WEB服务器的日志中 2.为error_log选项指定一个文件名(PHP有可写权限) 3.写入到操作系统日志中error_log=syslog

  图片进行缩放,加水印,电子相册 GIF PNG WBMP XPM JPG 图片处理:缩放,裁剪,翻转,旋转,透明,锐化等图片操作

  PDOStatement 帮我们准备一个语句和在PDO中对象的exce()以及query相比 优点: 执行效率高 安全性更高 帮我们处理结果集 推荐使用

  字段名n 列类型 [属性] [索引] )[表类型] [表字符集]; 表名称和字段名 需要我们自己定义名称 Users Articles SQL是不区分大小写的,但是表就是一个文件名,windows不区分大小写,Linux区 分大小写 1.一定要有意义(英文或英文组合和多个单词的缩写) 2.自己定的名称最好都小写 3.SQL语句都大写

  数组和对象:都属于PHP的复合类型(一个变量可以存储多个单元) 对象比数组更强大,不仅可以存储多个数据,还可以将函数存在对象 对象的三大特性:封装,继承,多态 面向对象编程(oop ) 面向对象和面向过程的区别 最小单位:函数 最小单位:对象 什么是对象

  对象就是东西,一个实体 20桌子 20椅子 电话: 对象中有什么? 品牌,颜色,电池,大小。。 打电话,发信息,听音乐。。。 对象:成员 成员属性—变量—定义对象的外观和状态 成员方法—函数—定义对象的功能 文章: 标题,作者,来源,访问数 添加,修改,删除。。。。 电子商城:用户,购物车,商品,分类,订单,图片,文件对象 什么是类 分类、类型、自己类型 桌子、椅子、电脑 在类中定义这个类型的属性和方法 声明类实例化对象(创建对象)用对象 成员属性: 成员方法: 在声明类时,类中的成员就是成员属性和成员方法,对这个类创建的对象中的内容, 就是你在类中声明的内容 类和对象之间的关系 并不是面向对象的语法难, 最难的就是如何设计出面向对象的程序

  a.其他语言(只有这一种方式) b.PHP中这种方式不是我们首选方式 c.数组必须是索引数组,而且下标必须是连续的 (索引数组下标还可以不连续,数组还有关联数组)

  Foreach(数组变量 as 变量值) { //循环体 } A.循环次数有数组的元素个数决定 B.每一次循环都会讲数组中的元素分别赋值给后面的变量 Foreach(数组变量 as 下标变量=值变量) { }

版权声明:本文为 “个人代码云儿美,个人php学习” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://a.shandingren.com/a/sdd/2022/1202/241.html

上一篇:学习_PHP语法
下一篇:关于PHP学习网
留言与评论(共有 条评论)
昵称:
匿名发表
验证码: 点击我更换图片
排行榜
关于我们
扫码关注
Copyright © 2002-2017 南缘网 湘ICP备2022026174号-1