卓绝连串,面向对象

By admin in 4858.com on 2019年2月1日

本文地址

正文地址

1.类和目的的概念
类: 属性与措施的汇聚
对象:类实例化的结果
class是定义类的显要字
new是实例化类的主要字
类中的元素有:成员属性、成员方法、静态属性、静态方法、常量。
三大特色:封装 继承 多态
2.做客修饰符
public(公共的权位):在其他地点都得以访问,主要概括:类内、类外、子类中,都足以访问
protected(受有限支撑的权能):只好在本类和子类中得以被访问,在类外无权访问
private(私有的权力):只可以在本类中被访问,在类外和子类中都无权访问
小心:成员属性不可以省略权限控制符

《细说PHP(精要版)》

 4858.com 1

 4858.com 2

3.类常量
常量是一个值永远不变的量,常量无法改改和删除
使用const来定义类常量
一个只会有一份常量,不可能有多份常量。节本省存空间
类常量不可能加权限控制符
调用类常量的艺术:ClassName::常量名称

基本新闻

      点击关切微信公众号
wenyuqinghuai

      点击关心微信公众号
wenyuqinghuai

4.静态属性和静态方法
static关键字修饰的性质,就是静态属性
static关键字修饰的特性,就是静态方法
静态属性和静态方法,是与类相关的,与对象毫不相关
静态属性和静态方法,可以省去内存空间,不会因为对象的扩张而增添。
调用静态属性/方法的措施:ClassName::常量名称

作者: 高洛峰

 

 

5.self关键字
$this代表当前目的;self代表当前类。
$this和self都不得不在类中的方法中应用
$this用来调用对象属性和章程
Self用来调用类的习性(静态属性)、类的措施(静态方法)、类的常量

出版社:电子工业出版社

分享提纲:

享受提纲:

6.构造格局
概念:当创设对象时,第1个活动调用的法门,就是构造方法
名称:__construct();
构造方法一般都是电动调用,不要求手动调用
构造方法只好是成员方法,不可能是静态方法

ISBN:9787121201479

  1. 概述

  1. 概述

7.析构主意
概念:当一个目标销毁前,自动调用的主意,就是析构方法
名称:__destruct()
析构方法自然没有参数,也尚未再次来到值
作用:在目标销毁前,做一些清理工作、处理工作、额外工作
多数动静下,析构方法大约不用。因为网页执行完结,网页中有关的变量都全体销毁

上架时间:2013-5-13

  2. 理想内容

4858.com ,  2. 可以内容

8.类的继承性
基础类(基类):最顶层的类,应该是兼具子类中共有的内容。
三番五次:就是将父类的具备东西尽数拿过来,一个不剩下的
单继承:只可以从一个父类来继承。如:PHP、Java、VB等。

出版日期:2013 年七月

    2.1 语言结构

    2.1 语言结构

构造方法和析构方法的继承
子类继承了父类,父类中具备内容都会被持续,包涵构造方法和析构方法

开本:16开

    2.2 大小写标题

    2.2 大小写标题

9.parent重中之重字与self关键字的差别
Self关键字总是代表本类;parent代表父类
Self只可以在本类中来利用;parent只好在子类中来行使
Self可以调用本类的内容:类常量、静态属性、静态方法、成员方法
Parent可以调用父类的内容:类常量、静态属性、静态方法、成员方法
Self和parent不可能调用成员属性

页码:388

    2.3 变量函数

    2.3 变量函数

10.类的多态性
类的多态,首要指方法重载和艺术重写
方法重载:在一个类中,定义多个同名方法。PHP不帮忙函数重载或艺术重载
艺术重写:就是父类中有些艺术,在子类中用同样的称谓,再定义一遍
主意重写的目标,重假设兑现项目效益的晋级
构造方法重写,四个构造方法的参数个数,能够差异。不过,此外措施重写时,参数个数必须一律。

版次:1-1

    2.4 常量相关函数

    2.4 常量相关函数

11.最后类和结尾方法
Final关键字修饰的类,就是最终类
Final关键字修饰的章程,就是最终方法
末段类:该类不必要后续,直接实例化即可。如:数据库操作类
最后方法:该形式充足健全,不须求重写,只好继续使用
末尾方法只好延续,无法重写。最后方法和末段类不可能而且使用。

所属分类:计算机

     
2.5 字符串的施用

     
2.5 字符串的行使

12.抽象类和抽象方法
abstract关键字修饰的类,就是抽象类
abstract关键字修饰的艺术,就是空泛方法
此类只可以被持续,不能够一贯实例化。常用来基础类
具备的用空想来安慰自己方法,在子类中必须要被重写

4858.com 3

    2.6 函数

    2.6 函数

13.接口
行使interface关键字,来定义一个接口,接口也是一个独特类
接口可以一连接口;抽象类也得以继承抽象类;类也得以继承类
接口中的方法默许都是空泛方法,不需求再加abstract关键字。
接口中的方法也得以是成员方法,也得以是静态方法
创设一个子类,来重写接口中的所有抽象方法
接口中的常量,只可以一而再,不可以重写。
接口中的所有办法,权限必须是public权限

越来越多关于 》》》《细说PHP(精要版)》

    2.7 数据库操作

    2.7 数据库操作

14.正常化的自行加载类函数__autoload($className)
自定义自动加载类文件函数(spl_autoload_register)

内容简介

    2.8 自动加载对象

    2.8 自动加载对象

类的全自动加载,是使用系统的放置函数__autoload()来促成的
函数名称__autoload()是稳定的
__autoload($className)函数是自行调用的
__autoload()函数,只可以兑现不难的类公事的加载;而spl_autoload_register()可以兑现复杂类文件加载
描述:注册__autoload()函数,注册三个__autoload()函数的连串
语法:bool spl_卓绝连串,面向对象。autoload_register ([ callback $autoload_function ]
)
spl_autload_register()函数的参数可以是一个字符串的函数名,也足以是一个匿名函数

计算机书籍

    2.9 魔术点子

    2.9 魔术点子

15.目标克隆
克隆对象,使用clone关键字来贯彻。可以生出五个真正的目的。
当对象克隆成功后时,即使存在仿制方法,就会自行调用。
仿造方法的效益:可以在目标克隆成功后,添加对象属性、修改对象属性的值。
大部魔术点子都是机动调用,不需求手动调用

  php是支付web应用种类最完美的工具,拥有易于使用、效能强大、费用低廉、安全性高、开发进程快且执行灵活等优点。《细说php(第2版)》自出版以来,销售一路在同类书籍中一马当先,已成为php学习者首选的工具书。为了可以让读者指导方便及更精准地左右php的基本点、要点,同时能使之视作大学计算机系php教材普及,尤其推出《细说php精要版》。《细说php(精要版)》是以《细说php(第2版)》为底蕴,提取出精华内容,都是php开发中必须需求控制的技术点。全书以实用为目的设计,包涵php开发中不可或缺的各样技术,对已列出的每一个知识点都举行了尖锐详实的讲授,并接济大批量的经文实例代码,图文并茂,并且强调介绍了php的连带技术在其实web开发中的应用。

    2.10 重载
overload

    2.10 重载
overload

16.常用的魔术点子
1、__toString()
__toString()当将对象转成字符串,自动调用的艺术
2.__invoke()
讲述:当将一个目的,当成函数调用时,__invoke()会自行调用。

  
对于php应用开发的新手而言,《细说php(精要版)》不失为一本好的入门教材,内容既实用又周到,所有实例都足以在开发中直接选择,并辅以恢宏的视频教程、配套的教学课件、章节操练题等,使读者轻松了然所学知识,越发符合大中专院校的师生作为php授课教材使用。

    2.11 类与对象相关函数

    2.11 类与目的相关函数

17.单例情势
单例格局设计需要(三私一公)
一私:私有的静态的保留当前目的的属性
一私:私有的构造方法,阻止类外new对象
一私:私有的克隆方法,阻止类外clone对象
一公:公共的静态的创立对象的不二法门

目录

    2.10 调试技巧

    2.10 调试技巧

18.instanceof关键字
讲述:判断一个对象是否某一个类的实例
语法:$obj instanceof ClassName
回来:假如$obj是ClassName类的实例,则赶回true;否则,重回false。

《细说php(精要版)》

 

 

19.重载
PHP不接济重载。
PHP中的重载,主要透过是由此魔术点子来落到实处的
当你拜访不存在或不足访问的习性时,魔术方法会自动调用
魔术点子的效果:屏蔽部分错误。

第1章 lamp网站营造1

1. 概述


 

关于PHP整理的须要记念和熟识领会的情节

 

1. 概述


 

关于PHP整理的须求回想和熟习领悟的内容

 

质量重载
__set()
讲述:在给不可访问属性赋值时,__set() 会被调用
语法:public void __set ( string $name , mixed $value )
__get()
叙述: 读取不可访问属性的值时,__get() 会被调用
语法:public mixed __get ( string $name )
__isset()
讲述:当对不可访问属性调用 isset() 或 empty()
时,__isset()会被调用。
语法:public bool __isset ( string $name )
__unset()
叙述:当对不可访问属性调用 unset() 时,__unset()会被调用。
语法:public void __unset ( string $name )

1.1 介绍网站给您认识1

2. 一矢双穿内容


  2.1)【语言结构】

 eval(): eval() 函数把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾(详见 http://www.w3school.com.cn/php/func_misc_eval.asp)

 

  2.2)【大小写题目】

- 类名、方法名、属性名、函数名:不区分大小写
- 变量名、常量名、元素下标:区分大小写

 

 

   2.3) 【变量函数

get_defined_vars    //返回由所有已定义变量所组成的数组(包括环境变量、服务器变量和用户定义的变量)

 

 

  2.4)【常量相关函数】

defined
get_defined_constants

 

 

  2.5)【字符串的采纳】

可将字符串当作一个字符的集合来使用,可独立访问每个字符。仅适用于单字节字符(字母、数字、半角标点符号),像中文等不可用
$str = "abcd";
echo $str[3];   // d
echo $str{0};   // a

 

   2.6)【函数】

4858.com 44858.com 5

1) 函数的声明是在编译时,故先定义再调用,定义与调用无先后关系!
2) 文件只是代码的载体,程序均在内存中执行!
3) 如果函数的定义在需要载入的文件内,则需要先载入该文件,否则调用出错!
4) 函数的定义可以出现在其他的代码段中,此时函数不会在编译阶段被执行
    只有被执行到时才会被定义!只有独立定义时才会被编译在内存中!
    如果出现在其他函数体内,也需要外层函数被调用时才被定义并生效!
5) 函数名不区分大小写
6) 不允许重名,包括系统函数
7) 【可变函数】
    函数名可以用其他变量代替
    $func_name = "sayHello";
    $func_name();       //此时调用sayHello()函数
    注意:只有在调用时才能使用变量,定义时不允许!
8) 变量可作为函数名调用函数,数组元素值也可以!
9) 形式参数parameter,实际参数argument
    可以对参数传递 null,表示该形参不想传递值
    形参与实参之间既可值传递,也可引用传递。
    引用传递参数,应该在定义函数时就在形式参数前加上 & 符号,而此时调用函数实参必须为变量
    如何选择使用哪种传递方式?
        a. 是否需要保证原始数据的完整性
        b. 是否需要增加效率
        c. 对大数据引用传递可节省内存
10) 参数默认值
        a. 函数的参数默认值必须是已经确定的值,不能是变量!
            只要在调用之前定义该常量,则可以使用常量作为参数默认值
        b. 函数默认值可以有多个,建议将有默认值的参数放在参数列表的最后面
           这样可以在调用函数时,不赋予后面有默认值的参数值,否则会出错
        c. 默认参数可以是非标量类型,比如数组、null
        d. 任何默认参数必须放在任何非默认参数的右侧
11) 参数数量
    a. 形参数量多于实参数量
        报告警告级别错误,并以NULL代替
    b. 实参多于形参
        不报告错误,依次为形参赋值
    c. 不确定参数数量
        1) 一个形参都不定义,永远都是实参多于形参
        2) 【可变数量参数】
            func_get_args() 获取当前函数被调用时所有实参的值,返回一个所有实参值组成的数组
            func_get_arg()  获取某个实参的值,通过索引值标识,e.g: func_get_arg(0)
            func_num_args() 获取所有实参的数量
12)【return】返回值
    a. 函数只有一个返回值,可以通过返回一个数组来得到类似的结果,但可以有多条return语句
    b. return语句会立即中止函数的运行,并将控制权交回调用该函数的代码行
    c. 可以返回包括数组和对象的任意类型
    d. 函数的返回也分值传递和引用传递(返回的是一个变量才可)
        1) 默认是值传递方式
        2) 引用传递方式:
            - 定义函数时,函数名前加上& 表示该函数可以返回引用
            - 调用函数时,函数名前加上& 表示取得函数返回的引用
                此时,函数外修改返回值,会修改函数内的该返回变量的值
            - 如果函数需返回引用,则需要返回一个变量才可以
            - 从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符&
                function &returns_reference(){return $someref;}
                $newref =& returns_reference();
        3) 返回引用的作用


  13)PHP Math 函数

1)decbin() 函数把十进制转换为二进制
2)pow() 函数返回 x 的 y 次方。
3)abs() 绝对值。
4)bindec() 把二进制转换为十进制
5)ceil() 向上舍入为最接近的整数
6)floor() 向下舍入为最接近的整数。
7)max() 返回最大值
8)min() 返回最小值
9)rand() 返回随机整数
10)round() 对浮点数进行四舍五入

函数

 

  **2.7)【数据库操作】**

#连接认证
mysql_connect        连接并认证数据库
#发送SQL语句,接收执行结果
mysql_query            发送SQL语句
        仅对select, show, explain, describe语句执行成功返回一个资源标识符,其他语句成功返回true。执行失败均返回false。
#处理结果
mysql_fetch_assoc    从结果集中取得一行作为关联数组
        每次只取回一条,类似each
    结果集中记录指针
mysql_fetch_row        从结果集中取得一行作为枚举数组
mysql_fetch_array    从结果集中取得一行作为关联数组,或数字数组,或二者兼有
    array mysql_fetch_array ( resource $result [, int $ result_type  ] )
    可选参数result_type可选值为:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH(默认)
mysql_free_result    释放结果内存
#关闭链接
mysql_close            关闭连接

 

  2.8)【自动加载对象】

- 在试图使用尚未被定义的类时自动调用 __autoload 函数
- 自动加载使用到的类名文件(根据类名找相应名称的文件,故需类名与类文件名一致)
- 每个需要加载类的文件都需要存在__autoload函数
- 将__autoload函数写入单独的文件,每个需要用到类的文件再require该函数文件
- __autoload 参数是类名
function __autoload($class_name) {
    require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
    // $_SERVER["DOCUMENT_ROOT"] 当前运行脚本所在的文档根目录
- 可以通过类名,来推导出类所在的文件名!
- 如果一个项目存在多个自动加载函数时,定义一个可以完成加载的普通函数,并在函数之前使用spl_autoload_register注册该函数。
# spl_autoload_register
- 注册__autoload()函数
bool spl_autoload_register ([ callback $autoload_function ] )
- 可以注册多个自动加载函数,先注册的先执行
- 一旦注册自动加载函数,__autoload就失效。
- 注册函数时,参数为函数名(注意加引号);注册方法时,参数为数组
# 注册类或对象的方法为自动加载方法时,参数需为数组:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示当前类名,若是对象可用$this,详细见手册

 

  2.9)【魔术点子】

__construct        构造方法
__destruct        析构方法
__clone            克隆对象
__sleep            序列化对象
__wakeup        反序列化对象
__autoload        自动加载,使用类但未找到时

__toString        对象被当作字符串使用时
__invoke        当尝试以调用函数的方式调用一个对象时

 

  2.10)【重载 overload】

指动态地"创建"类属性和方法
用户可以自由的为对象添加额外的属性,该特性就是重载。
所有的重载方法都必须被声明为public。
当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。
重载相关魔术方法的参数都不能通过引用传递。
# 属性重载
- 处理不可访问的属性
属性重载只能在对象中进行。
# 属性重载对于静态属性无效
在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被声明为static。
__set        在给不可访问的属性赋值时
    public void __set(string $name, mixed $value)
    作用:批量管理私有属性,间接保护对象结构
__get        读取不可访问的属性的值时
    public mixed __get(string $name)
__isset        当对不可访问的属性调用isset()或empty()时
    public bool __isset(string $name)
__unset        当对不可访问的属性调用unset()时
    public void __unset(string $name)
# 方法重载
- 处理不可访问的方法
__call            当调用一个不可访问的非静态方法(如未定义,或者不可见)时自动被调用
        public mixed __call(string $name, array $arguments)
__callStatic    当在调用一个不可访问的静态方法(如未定义,或者不可见)时自动被调用
        public static mixed __callStatic(string $name, array $arguments)
# $name参数是要调用的方法名称。$arguments参数是一个数组,包含着要传递给方法的参数。

  

  2.11)【类与对象相关函数】

class_alias([$original [,$alias]])  给类取别名
class_exists($class [,$autoload])   检查类是否已定义
interface_exists($interface [,$autoload])   检查接口是否已被定义
method_exists($obj, $method)检查类的方法是否存在
property_exists($class, $property)  检查对象或类是否具有该属性
get_declared_classes(void)  返回由已定义类的名字所组成的数组
get_declared_interfaces(void)   返回一个数组包含所有已声明的接口
get_class([$obj])       返回对象的类名
get_parent_class([$obj])    返回对象或类的父类名
get_class_methods($class)   返回由类的方法名组成的数组
get_object_vars($obj)   返回由对象属性组成的关联数组
get_class_vars($class)  返回由类的默认属性组成的数组
is_a($obj, $class) 如果对象属于该类或该类是此对象的父类则返回TRUE
is_subclass_of($obj, $class)    如果此对象是该类的子类,则返回TRUE
get_object_vars($obj)   返回由对象属性组成的关联数组

 

  2.12)【调试技巧】

  

-- 使用 debug_print_backtrace()函数可以打印出程序的调用栈
-- Xdebug也是一个不错的调试工具

 

2. 可以内容


  2.1)【语言结构】

 eval(): eval() 函数把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾(详见 http://www.w3school.com.cn/php/func_misc_eval.asp)

 

  2.2)【大小写标题】

- 类名、方法名、属性名、函数名:不区分大小写
- 变量名、常量名、元素下标:区分大小写

 

 

   2.3) 【变量函数

get_defined_vars    //返回由所有已定义变量所组成的数组(包括环境变量、服务器变量和用户定义的变量)

 

 

  2.4)【常量相关函数】

defined
get_defined_constants

 

 

  2.5)【字符串的利用】

可将字符串当作一个字符的集合来使用,可独立访问每个字符。仅适用于单字节字符(字母、数字、半角标点符号),像中文等不可用
$str = "abcd";
echo $str[3];   // d
echo $str{0};   // a

 

   2.6)【函数】

4858.com 64858.com 7

1) 函数的声明是在编译时,故先定义再调用,定义与调用无先后关系!
2) 文件只是代码的载体,程序均在内存中执行!
3) 如果函数的定义在需要载入的文件内,则需要先载入该文件,否则调用出错!
4) 函数的定义可以出现在其他的代码段中,此时函数不会在编译阶段被执行
    只有被执行到时才会被定义!只有独立定义时才会被编译在内存中!
    如果出现在其他函数体内,也需要外层函数被调用时才被定义并生效!
5) 函数名不区分大小写
6) 不允许重名,包括系统函数
7) 【可变函数】
    函数名可以用其他变量代替
    $func_name = "sayHello";
    $func_name();       //此时调用sayHello()函数
    注意:只有在调用时才能使用变量,定义时不允许!
8) 变量可作为函数名调用函数,数组元素值也可以!
9) 形式参数parameter,实际参数argument
    可以对参数传递 null,表示该形参不想传递值
    形参与实参之间既可值传递,也可引用传递。
    引用传递参数,应该在定义函数时就在形式参数前加上 & 符号,而此时调用函数实参必须为变量
    如何选择使用哪种传递方式?
        a. 是否需要保证原始数据的完整性
        b. 是否需要增加效率
        c. 对大数据引用传递可节省内存
10) 参数默认值
        a. 函数的参数默认值必须是已经确定的值,不能是变量!
            只要在调用之前定义该常量,则可以使用常量作为参数默认值
        b. 函数默认值可以有多个,建议将有默认值的参数放在参数列表的最后面
           这样可以在调用函数时,不赋予后面有默认值的参数值,否则会出错
        c. 默认参数可以是非标量类型,比如数组、null
        d. 任何默认参数必须放在任何非默认参数的右侧
11) 参数数量
    a. 形参数量多于实参数量
        报告警告级别错误,并以NULL代替
    b. 实参多于形参
        不报告错误,依次为形参赋值
    c. 不确定参数数量
        1) 一个形参都不定义,永远都是实参多于形参
        2) 【可变数量参数】
            func_get_args() 获取当前函数被调用时所有实参的值,返回一个所有实参值组成的数组
            func_get_arg()  获取某个实参的值,通过索引值标识,e.g: func_get_arg(0)
            func_num_args() 获取所有实参的数量
12)【return】返回值
    a. 函数只有一个返回值,可以通过返回一个数组来得到类似的结果,但可以有多条return语句
    b. return语句会立即中止函数的运行,并将控制权交回调用该函数的代码行
    c. 可以返回包括数组和对象的任意类型
    d. 函数的返回也分值传递和引用传递(返回的是一个变量才可)
        1) 默认是值传递方式
        2) 引用传递方式:
            - 定义函数时,函数名前加上& 表示该函数可以返回引用
            - 调用函数时,函数名前加上& 表示取得函数返回的引用
                此时,函数外修改返回值,会修改函数内的该返回变量的值
            - 如果函数需返回引用,则需要返回一个变量才可以
            - 从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符&
                function &returns_reference(){return $someref;}
                $newref =& returns_reference();
        3) 返回引用的作用


  13)PHP Math 函数

1)decbin() 函数把十进制转换为二进制
2)pow() 函数返回 x 的 y 次方。
3)abs() 绝对值。
4)bindec() 把二进制转换为十进制
5)ceil() 向上舍入为最接近的整数
6)floor() 向下舍入为最接近的整数。
7)max() 返回最大值
8)min() 返回最小值
9)rand() 返回随机整数
10)round() 对浮点数进行四舍五入

函数

 

  **2.7)【数据库操作】**

#连接认证
mysql_connect        连接并认证数据库
#发送SQL语句,接收执行结果
mysql_query            发送SQL语句
        仅对select, show, explain, describe语句执行成功返回一个资源标识符,其他语句成功返回true。执行失败均返回false。
#处理结果
mysql_fetch_assoc    从结果集中取得一行作为关联数组
        每次只取回一条,类似each
    结果集中记录指针
mysql_fetch_row        从结果集中取得一行作为枚举数组
mysql_fetch_array    从结果集中取得一行作为关联数组,或数字数组,或二者兼有
    array mysql_fetch_array ( resource $result [, int $ result_type  ] )
    可选参数result_type可选值为:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH(默认)
mysql_free_result    释放结果内存
#关闭链接
mysql_close            关闭连接

 

  2.8)【自动加载对象】

- 在试图使用尚未被定义的类时自动调用 __autoload 函数
- 自动加载使用到的类名文件(根据类名找相应名称的文件,故需类名与类文件名一致)
- 每个需要加载类的文件都需要存在__autoload函数
- 将__autoload函数写入单独的文件,每个需要用到类的文件再require该函数文件
- __autoload 参数是类名
function __autoload($class_name) {
    require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
    // $_SERVER["DOCUMENT_ROOT"] 当前运行脚本所在的文档根目录
- 可以通过类名,来推导出类所在的文件名!
- 如果一个项目存在多个自动加载函数时,定义一个可以完成加载的普通函数,并在函数之前使用spl_autoload_register注册该函数。
# spl_autoload_register
- 注册__autoload()函数
bool spl_autoload_register ([ callback $autoload_function ] )
- 可以注册多个自动加载函数,先注册的先执行
- 一旦注册自动加载函数,__autoload就失效。
- 注册函数时,参数为函数名(注意加引号);注册方法时,参数为数组
# 注册类或对象的方法为自动加载方法时,参数需为数组:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示当前类名,若是对象可用$this,详细见手册

 

  2.9)【魔术点子】

__construct        构造方法
__destruct        析构方法
__clone            克隆对象
__sleep            序列化对象
__wakeup        反序列化对象
__autoload        自动加载,使用类但未找到时

__toString        对象被当作字符串使用时
__invoke        当尝试以调用函数的方式调用一个对象时

 

  2.10)【重载 overload】

指动态地"创建"类属性和方法
用户可以自由的为对象添加额外的属性,该特性就是重载。
所有的重载方法都必须被声明为public。
当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。
重载相关魔术方法的参数都不能通过引用传递。
# 属性重载
- 处理不可访问的属性
属性重载只能在对象中进行。
# 属性重载对于静态属性无效
在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被声明为static。
__set        在给不可访问的属性赋值时
    public void __set(string $name, mixed $value)
    作用:批量管理私有属性,间接保护对象结构
__get        读取不可访问的属性的值时
    public mixed __get(string $name)
__isset        当对不可访问的属性调用isset()或empty()时
    public bool __isset(string $name)
__unset        当对不可访问的属性调用unset()时
    public void __unset(string $name)
# 方法重载
- 处理不可访问的方法
__call            当调用一个不可访问的非静态方法(如未定义,或者不可见)时自动被调用
        public mixed __call(string $name, array $arguments)
__callStatic    当在调用一个不可访问的静态方法(如未定义,或者不可见)时自动被调用
        public static mixed __callStatic(string $name, array $arguments)
# $name参数是要调用的方法名称。$arguments参数是一个数组,包含着要传递给方法的参数。

  

  2.11)【类与对象相关函数】

class_alias([$original [,$alias]])  给类取别名
class_exists($class [,$autoload])   检查类是否已定义
interface_exists($interface [,$autoload])   检查接口是否已被定义
method_exists($obj, $method)检查类的方法是否存在
property_exists($class, $property)  检查对象或类是否具有该属性
get_declared_classes(void)  返回由已定义类的名字所组成的数组
get_declared_interfaces(void)   返回一个数组包含所有已声明的接口
get_class([$obj])       返回对象的类名
get_parent_class([$obj])    返回对象或类的父类名
get_class_methods($class)   返回由类的方法名组成的数组
get_object_vars($obj)   返回由对象属性组成的关联数组
get_class_vars($class)  返回由类的默认属性组成的数组
is_a($obj, $class) 如果对象属于该类或该类是此对象的父类则返回TRUE
is_subclass_of($obj, $class)    如果此对象是该类的子类,则返回TRUE
get_object_vars($obj)   返回由对象属性组成的关联数组

 

  2.12)【调试技巧】

  

-- 使用 debug_print_backtrace()函数可以打印出程序的调用栈
-- Xdebug也是一个不错的调试工具

 

格局重载
__call()
讲述:在目的中调用一个不行访问方法时,__call() 会被调用。
语法:public mixed __call ( string $name , array $arguments )
参数:
$name就是要调用的法子的名称
$arguments就是调用方法传递的参数的数组
__callStatic()
讲述:用静态格局中调用一个不行访问方法时,__callStatic() 会被调用。
语法:public static mixed __callStatic ( string $name , array
$arguments )

1.1.1 web应用的优势2

20.序列化
种类化:将变量转成可保存的字符串,并且不丢掉变量的构造和花色。
反体系化:将变量字符串,再还原成变量。
提示:所有变量都可以种类化,除资源外

1.1.2 web 2.0一时的网络3

serialize()
讲述:爆发一个可存储的值的象征
语法:string serialize ( mixed $value )
unserialize()
叙述:从已囤积的表示中创设 PHP 的值
语法:mixed unserialize ( string $str )

1.1.3 web开发标准4

21.常用的魔术常量
__LINE__:当前行号
__FILE__:当前文件的相对路径
__DIR__:当前目录
__FUNCTION__:当前函数
__CLASS__:当前类名
__METHOD__:当前格局

1.1.4 认识脚本语言5

22.常用类和对象的操作函数
1.检查类是不是定义class_exists()
2.检查接口是不是存在interface_exists()
反省格局是不是存在method_exists()
检查属性是或不是存在property_exists()
3.赶回对象的类名get_class()
4.重回父类名称get_parent_class()
5、检查一个变量是或不是目的is_object()

1.1.5 了解http协议5

1.2 动态网站开发所需的web构件10

1.2.1 客户端浏览器10

1.2.2 超文本标记语言html12

1.2.3 层叠样式表css13

1.2.4 客户端脚本编程语言javascript13

1.2.5 web服务器14

1.2.6 服务器端编程语言16

1.2.7 数据库管理连串16

1.3 两种主流的web应用程序平台17

1.3.1 web应用程序开发平台相比分析18

1.3.2 动态网站开发平台技术相比较19

1.4 web的行事原理19

.1.4.1 情景1:服务器不带应用程序服务器和数据库19

1.4.2 情景2:带应用程序服务器的web服务器21

1.4.3 情景3:浏览器访问服务器端的数据库21

1.5 lamp网站开发结合概述22

1.5.1 linux操作系统22

1.5.2 web服务器apache23

1.5.3 mysql数据库管理系列24

1.5.4 php后台脚本编程语言24

1.5.5 lamp发展趋势25

第2章 从搭建你的php开发条件早先27

2.1 三种常见的php环境设置方式27

2.1.1 linux系统下源代码包格局安装环境27

2.1.2 在windows系统上安装web工作环境28

2.1.3 搭建学习型的php工作环境28

2.2 环境设置对操作系统的接纳29

2.2.1 选拔网站运营的操作系统29

2.2.2 选拔网站开发的操作系统29

2.3 安装集成php开发环境30

2.3.1 安装前准备30

2.3.2 安装步骤30

2.3.3 环境测试33

第3章 php的基本语法36

3.1 php在web开发中的应用36

3.1.1 就从认识php伊始吧36

3.1.2 php都能做哪些37

3.2 第四个php脚本程序39

3.3 php语言标记42

3.3.1 将php代码嵌入html中的地方43

3.3.2 解读起来和得了标记44

3.4 指令分隔符“分号”45

3.5 程序注释45

3.6 在程序中利用空白的处理47

3.7 变量48

3.7.1 变量的宣示48

3.7.2 变量的命名49

3.7.3 可变变量51

3.7.4 变量的引用赋值51

3.8 变量的花色52

3.8.1 类型介绍52

3.8.2 布尔型(boolean)53

3.8.3 整型(integer)54

3.8.4 浮点型(float或double)55

3.8.5 字符串(string)55

3.8.6 数组(array)57

3.8.7 对象(object)58

3.8.8 资源类型(resource)58

3.8.9 null类型59

3.8.10 伪类型介绍59

3.9 数据类型之间相互转换60

3.9.1 自动类型转换60

3.9.2 强制类型转换61

3.9.3 类型转换细节62

3.10 常量62

3.10.1 常量的定义和应用62

3.10.2 常量和变量63

3.11 php中的运算符63

3.11.1 算术运算符64

3.11.2 字符串运算符66

3.11.3 赋值运算符67

3.11.4 相比较运算符68

3.11.5 逻辑运算符69

3.11.6 位运算符70

3.11.7 其余运算符73

3.11.8 运算符的先期级74

3.12 表达式75

第4章 php的流程控制结构76

4.1 分支结构76

4.1.1 单一条件分支协会(if)77

4.1.2 双向条件分支社团(else从句)78

4.1.3 多向条件分支协会(elseif子句)79

4.1.4 多向条件分支协会(switch语句)80

4.1.5 巢状条件分支社团82

4.2 循环结构83

4.2.1 while语句84

4.2.2 do…while循环86

4.2.3 for语句87

4.3 特殊的流水线控制语句90

4.3.1 break语句90

4.3.2 continue语句91

4.3.3 exit语句91

第5章 php的函数应用93

5.1 函数的定义93

5.2 自定义函数94

5.2.1 函数的扬言94

5.2.2 函数的调用96

5.2.3 函数的参数97

5.2.4 函数的重返值98

5.3 php变量的限制100

5.3.1 局地变量100

5.3.2 全局变量101

5.4 申明及应用各个花样的php函数103

5.4.1 常规参数的函数104

5.4.2 伪类型参数的函数104

5.4.3 引用参数的函数105

5.4.4 默许参数的函数106

5.4.5 可变个数参数的函数108

5.4.6 回调函数108

5.5 使用自定义函数库111

第6章 php中的数组与数据结构112

6.1 数组的分类112

6.2 数组的定义114

6.2.1 直接赋值的艺术宣示数组114

6.2.2 使用array()语言结构新建数组116

6.2.3 多维数组的扬言117

6.3 数组的遍历119

6.3.1 使用for语句循环遍历数组120

6.3.2 使用foreach语句遍历数组122

6.4 预订义数组125

6.4.1 服务器变量:$_server126

6.4.2 环境变量:$_env126

6.4.3 url get变量:$_get126

6.4.4 http post变量:$_post127

6.4.5 request变量:$_request128

6.4.6 http文件上传变量:$_files128

6.4.7 http cookies:$_cookie129

6.4.8 session变量:$_session129

6.4.9 global变量:$globals129

第7章 php面向对象的次序设计130

7.1 面向对象的介绍130

7.1.1 类和对象时期的涉及131

7.1.2 面向对象的次序设计132

7.2 怎么着抽象一个类132

7.2.1 类的宣示133

7.2.2 成员属性133

7.2.3 成员方法134

7.3 通过类实例化对象136

7.3.1 实例化对象136

7.3.2 对象中成员的拜会137

7.3.3 特殊的靶子引用“$this”139

7.3.4 构造方法与析构方法141

7.4 封装性144

7.4.1 设置个人成员144

7.4.2 私有成员的访问145

7.4.3 __set()和__get()方法147

7.5 继承性151

7.5.1 类继承的采纳152

7.5.2 访问类型控制153

7.5.3 子类中重载父类的主意155

7.6 常见的重大字和魔术点子158

7.6.1 final关键字的选取158

7.6.2 static关键字的应用159

7.6.3 const关键字160

7.6.4 克隆对象161

7.6.5 类中通用的办法__tostring()162

7.6.6 __call()方法的行使163

7.6.7 自动加载类164

第8章 字符串处理165

8.1 字符串的处理介绍165

8.1.1 字符串的处理格局165

8.1.2 字符串类型的特性166

8.1.3 双引号中变量解析总括167

8.2 常用的字符串输出函数167

8.3 常用的字符串格式化函数170

8.3.1 去除空格和字符串填补函数171

8.3.2 字符串大小写的变换172

8.3.3 和html标签相关的字符串格式化172

第9章 正则表明式177

9.1 正则表明式简介177

9.1.1 选用php正则表明式的拍卖函数库177

9.2 正则表明式的语法规则178

9.2.1 定界符179

9.2.2 原子179

9.2.3 元字符181

9.2.4 格局矫正符184

9.3 与perl包容的正则表明式函数185

9.3.1 字符串的匹配与寻找185

9.3.2 字符串的交替189

9.3.3 字符串的分割和连接194

第10章 文件系统处理197

10.1 文件系统概述197

10.1.1 文件类型197

10.1.2 文件的性质198

10.2 目录的基本操作201

10.2.1 解析目录路径201

10.2.2 遍历目录203

10.2.3 计算目录大小204

10.2.4 建立和删除目录205

10.2.5 复制目录206

10.3 文件的基本操作207

10.3.1 文件的开拓与关闭207

10.3.2 写入文件209

10.3.3 读取文件内容210

10.3.4 访问远程文件212

10.3.5 移动文件指针213

10.3.6 文件的锁定机制214

10.3.7 文件的局地基本操作函数217

10.4 文件的上传与下载218

10.4.1 文件上传218

10.4.2 处理四个文件上传222

10.4.3 文件下载223

第11章 php动态图像处理225

11.1 php中gd库的行使225

11.1.1 画布管理226

11.1.2 设置颜色226

11.1.3 生成图像227

11.1.4 绘制图像228

11.1.5 在图像中绘制文字230

11.2 php图片处理232

11.2.1 图片背景管理233

11.2.2 图片缩放234

11.2.3 图片裁剪236

11.2.4 添加图片水印237

11.2.5 图片旋转和扭转238

第12章 mysql数据库概述241

12.1 数据库的采取241

12.1.1 数据库在web开发中的首要地方242

12.1.2 为何php会选用mysql作为自己的黄金搭档242

12.1.3 php和mysql的合营格局242

12.1.4 结构化查询语言sql243

12.2 mysql数据库的普遍操作244

12.2.1 mysql数据库的接连与关闭244

12.2.2 创立新用户并授权245

12.2.3 创造数据库245

12.2.4 创造数据表246

12.2.5 数据表内容的粗略管理247

第13章 mysql数据表的规划249

13.1 数据表(table)249

13.2 数据值和列类型250

13.2.1 数值类的多寡列类型250

13.2.2 字符串类数据列类型251

13.2.3 日期和时间型数据列类型252

13.2.4 null值253

13.2.5 类型转换253

13.3 数据字段属性253

13.4 数据表对象管理254

13.4.1 创建表(create table)254

13.4.2 修改表(alter table)256

13.4.3 删除表(drop table)257

13.5 数据表的档次及储存地方257

13.5.1 myisam数据表257

13.5.2 innodb数据表258

13.5.3 怎样接纳innodb照旧myisam表类型258

13.6 数据表的默许字符集259

13.6.1 字符集援救原理259

13.6.2 创造数量对象时修改字符集259

13.7 创造索引260

13.7.1 主键索引(primary key)260

13.7.2 唯一索引(unique)261

13.7.3 常规索引(index)261

第14章 sql语句设计263

14.1 操作数据表中的数量记录(dml)263

14.1.1 使用insert语句向数据表中添加多少263

14.1.2 使用update语句更新数据表中已存在的数据264

14.1.3 使用delete语句删除数据表中不须要的数码记录265

14.2 通过dql命令查询数据表中的多寡266

14.2.1 选用特定的字段266

14.2.2 使用as子句为字段取别名267

14.2.3 distinct关键字的应用267

14.2.4 在select语句中拔取表明式的列268

14.2.5 使用where子句按规则检索269

14.2.6 按照空值(null)确定检索条件270

14.2.7 使用between and举行界定比较查询270

14.2.8 使用in举办限定比对查询271

14.2.9 使用like进行模糊查询271

14.2.10 多表查询(连接查询)272

14.2.11 嵌套查询(子查询)274

14.2.12 使用order by对查询结果排序275

14.2.13 使用limit限定结果行数275

14.2.14 使用统计函数276

14.2.15 使用group by对查询结果分组277

第15章 php访问mysql的壮大函数279

15.1 php访问mysql数据库服务器的流程279

15.2 在php脚本中两次三番mysql服务器281

15.2.1 在php程序中挑选已创造的数据库282

15.2.2 执行sql命令283

15.2.3 在php脚本中拍卖select查询结果集284

第16章 数据库抽象层pdo287

16.1 pdo所援助的数据库287

16.2 pdo的安装289

16.3 创建pdo对象290

16.3.1 以种种办法调用构造方法290

16.3.2 pdo对象中的成员方法293

16.4 使用pdo对象293

16.4.1 调整pdo的一言一动性质293

16.4.2 pdo处理php程序和数据库之间的数据类型转换294

16.4.3 pdo的错误处理格局295

16.4.4 使用pdo执行sql语句295

16.5 pdo对预处理语句的支撑297

16.5.1 了解pdostatement对象298

16.5.2 准备语句299

16.5.3 绑定参数300

16.5.4 执行准备好的查询301

16.5.5 获取数据302

第17章 会话控制306

17.1 为啥要运用会话控制306

17.2 会话跟踪的章程307

17.3 cookie的应用308

17.3.1 cookie概述308

17.3.2 向客户端总计机中装置cookie309

17.3.3 在php脚本中读取cookie的资料内容310

17.3.4 数组形态的cookie应用311

17.3.5 删除cookie311

17.3.6 基于cookie的用户登录模块312

17.4 session的应用314

17.4.1 session概述314

17.4.2 配置session315

17.4.3 session的宣示与行使316

17.4.4 注册一个会话变量和读取session316

17.4.5 注销变量与销毁session317

17.5 一个概括的邮件系统实例318

17.5.1 为邮件系统准备数据319

17.5.2 编码已毕邮件系统320

17.5.3 邮件系统执行表达322

第18章 php的模版引擎smarty324

18.1 什么是模板引擎324

18.2 接纳smarty模板引擎326

18.3 安装smarty及初阶化配置327

18.3.1 安装smarty327

18.3.2 初阶化smarty类库的默许设置328

18.3.3 第四个smarty的简易示例331

18.4 smarty的为主选择333

18.4.1 php程序员常用和smarty相关的操作334

18.4.2 模板设计时美工的常用操作335

18.5 smarty模板设计的基本语法336

18.5.1 模板中的注释336

18.5.2 模板中的变量应用336

18.5.3 模板中的函数应用339

18.5.4 忽略smarty解析341

18.6 在smarty模板中的变量应用341

18.7 在smarty模板中的变量调解器344

18.7.1 变量调解器函数的行使方法344

18.7.2 smarty默许提供的变量调解器345

18.7.3 自定义变量调解器插件347

18.8 smarty模板中自定义函数349

18.8.1 为smarty模板扩张函数插件349

18.8.2 为smarty模板伸张块函数插件351

18.9 smarty模板中的内置函数352

18.9.1 变量评释352

18.9.2 流程控制353

18.9.3 注脚和调用模板函数355

18.9.4 数组遍历356

18.9.5 smarty提供的其余内置函数361

18.10 smarty的模板继承特性362

18.10.1 使用{extends}函数完成模板继承362

18.10.2 在子模板中覆盖父模板中的部分情节区域363

18.10.3 合并子模板和父模板的{block}标签内容364

第19章 mvc模式与php框架366

19.1 mvc方式在web中的应用366

19.1.1 mvc形式的办事规律366

19.1.2 mvc格局的利害368

19.2 php开发框架369

19.2.1 什么是框架369

19.2.2 为何要用框架370

19.2.3 框架和mvc设计格局的涉及370

19.2.4 相比较流行的php框架371

19.3 划分模块和操作372

19.3.1 为项目划分模块373

19.3.2 为模块设置操作373

以下内容详见本书配书光盘:

第20章 超轻量级php框架

brophp374

第21章 b/s结构软件开发流程425

第22章 须求分析表明434

第23章 数据库设计表达书445

第24章 程序设计表达书461

 

本图书信息来源:中华互相出版网

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有