php学习(四)细说php精要版 6、7章学习

    xiaoxiao2023-10-10  165

    第6章 PHP中的数组与数据结构

    6.1数组的分类:(1)索引数组的索引值是整数。(2)关联数组以字符串作为索引值。

    6.2数组的定义:(1)直接为数组元素赋值即可声明数组。(2)使用array()函数声明数组。

    直接赋值:$数组变量名[下标] = 内容

    例:$arr[0]=1;$arr[1]=2;索引数组索引值连续的话可以省略下标$arr[]=1;$arr[]=2;

    也可以是不连续的整数下标$arr[]=1;$[9]=10;$[]=11;$[9]=12;$[]=13;重复索引相当于重新赋值,最后个元素的索引是11

    使用array()语言结构新建数组:$数组变量名 = array(key1=>value1,key2=>value2);

    如果不使用=>默认为索引数组。

    6.3数组的遍历

    6.4预定义数组

    全局存在,不需要global关键字访问它们。

    $_SERVER:服务器变量;环境变量:$_ENV;URL GET变量:$_GET、$_POST...

    第7章 PHP面向对象的程序设计

    拓展:说一门语言面向对象,重点在“面向”,不代表不能实现“面向过程”,面向就是合适。

    7.1面向对象介绍

    7.2类

    [一些修饰类的关键字]  class 类名{

    7.3通过类实例化对象

    $变量名 = new 类名称([参数列表]);或$变量名 = new 类名称;

    访问对象中的成员:对象引用名->属性/方法,如果对象的成员不是静态的,这是唯一的访问形式

    特殊的对象引用$this

    构造方法:__construct([参数列表]){}

    析构方法:__destruct(){}  在对象被释放的时候执行,对象的引用被赋予其他的值或页面运行结束。对象的引用存放在栈内存中,栈后进先出,最后创建的引用会被最先释放。

    7.4封装性

    使用private关键字修饰实现对成员的封装,私有,外部不能访问。

    通过共开的方法访问私有成员,魔术方法:__set(属性名,属性值),__get(属性名),使用需要将__set(),__get()声明在类里,然后在函数中写自己的保护逻辑。

    7.5继承性

    使用“extends”关键字实现多个类的单继承关系

    访问类型控制:private、protected、public(默认)

    重写父类方法命名相同名字即可,调用父类方法parent::方法名

    7.6常见的关键字和魔术方法

    (1)final:不能用final标识成员属性,final有常量的意思,但是在php中常量通过define()的函数来完成。

    使用final标识的类不能被继承 final class MyClass(){};

    在类中使用final标识的方法在子类中不能被覆盖;

    违法系统会报错。

    (2)static:将类中成员标识成静态的,可以标识成员属性和方法。

    静态成员方法属于类,实例的对象共享,访问直接通过类Person::静态成员。

    在类中访问其他静态成员,不能同$this,用self::

    静态方法中只能访问静态成员,因为非静态成员必须通过对象应用才能访问。

    (3)const:定义常量通过define()函数,但是在类中定义常量用const,变量名前不加$,全大写,访问跟static一样,也不能通过对象访问。常量属性是只读的,重新赋值会出现错误,所以在声明常量的时候一定要赋初值

    (4)clone:克隆对象

    类中可以声明一个__clone方法,在克隆对象时会自动调用,包含$this对象引用,是副本对象引用。

    (5)__toString():在类中声明__toString(),就可以直接 echo $p,返回我们想要返回的字符串,__toString()要有一个字符串做返回值

    (6)_call():如果尝试调用类中不存在的方法,系统会报错,在类中声明__call(),会调用这个方法。

    __call()有两个参数,第一个参数是调用不存在的方法名,第二个调用时传的参数列表。

    (7)__autoload():自动加载类,在调用一个不存在(未引入)的类时会调用该方法。

     

    最新回复(0)