笔记:php基础

发布时间:2020-05-29 00:00:00 阅读:(619)

    php变量

    变量命名规则

    • 变量以$符号开始,后面跟着变量的名称
    • 变量名必须以字母或者下划线字符开始
    • 变量名只能包含字母数字字符以及下划线(A-z,0-9和_)
    • 变量名不能包含空格
    • 变量名是区分大小写的(如$y与$Y是两个不同的变量)

    变量作用域

    变量作用域是脚本中变量可被引用使用的部分。
    变量作用域种类:

    • local
    • global
    • static
    • parameter
    static作用域

    当一个函数完成时,它的所有变量通常都会被删除。当希望某个变量不被删除时,在第一次声明时使用static关键字。

    echo与print

    区别:

    echo 可以输出一个或多个字符串
    print 只允许输出一个字符串,返回值总为1
    echo 输出的速度比 print 快,echo 没有返回值,print 有返回值 1

    数据类型

    php数据类型包括 string(字符串),Integer(整型),Float(浮点型),Boolean(布尔型),array(数组),object(对象),null(空值)

    常量

    php常量是一个简单值的标识符,该值在脚本中不能改变。一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现(常量名不需要加$修饰符),常量是全局的

    设置常量

    设置常量,使用define()函数

    bool define(string $name, mixed $value [,bool $case_insensitive = false])
    

    其中 case_insensitive是可选参数,设置为true则该常量大小写不敏感,默认敏感

    运算符

    三元运算符

    (expr1) ? (ecpr2) : (expr3)
    

    对expr1求值为true时值为expr2,在expr1值为false时值为expr3

    数组

    数组是一个能在单个变量中存储多个值得特殊变量。PHP数组特点是将values映射到keys的类型,PHP中数组的key可以是字符串,而values可以是任意类型。

    数组排序函数

    • sort() 对数组进行升序排序
    • rsort() 对数组进行降序排序
    • asort() 根据关联数组的值,对数组进行升序排列
    • ksort() 根据关联数组的键,对数组进行升序排列
    • arsort() 根据关联数组的值,对数组进行降序排列
    • krsort() 根据关联数组的键,对数组进行降序排列

    超全局变量

    php中预定了几个超级全局变量,意味着他们可以再一个脚本的全部作用域中都可用,不需要特别声明,就可以在函数或类中使用

    $GLOBALS
    $_SERVER
    $_REQUEST
    $_POST
    $_GET
    $_FILES
    $_ENV
    $_COOKIE
    $_SESSION
    

    $GLOBALS

    $GLOBALS是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

    $_SERVER

    $_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由Web服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    $_REQUEST

    $_REQUEST用于手机HTML表单提交的数据

    $_POST

    $_POST被广泛应用于收集表单数据,需要在HTML fotm标签的指定该属性 method="post"

    $_GET

    魔术常量

    PHP向它运行的任何脚本提供了大量的预定义常量。不过大多数常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。PHP有八个魔术常量的值随着它们在代码中的位置改变而改变。

    __LINE__ 文件中当前行号

    __FILE__ 文件的完整路径和文件名

    __DIR__ 文件所在目录

    __FUNCTION__ 函数名称

    __CLASS__ 类的名称

    __TRAIT__ trait的名字

    __METHOD__ 类的方法名

    __NAMESPACE__ 当前命名空间的名称

    面相对象

    **类** 定义了一类事物的抽象特点。类的定义包含了数据的形式以及对数据的操作
    **对象** 类的实例
    **成员变量** 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,改变立案即可成为对象的属性
    **成员函数** 定义在类的内部,可用于访问对象的数据
    **继承** 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容
    **父类** 一个类被其他类继承,可将该类成为父类,基类,超类
    **子类** 一个类继承其他类称为子类,也可称派生类
    **多态** 多态性是指相同的操作或函数、过程渴作用域多种类型的对象上并获得不同的结果。不同的对象收到同一个消息产生不同的结果,这种现象称为多态性
    **重载** 就是函数或者方法有同样的名称,但是参数列表不同的情况,这种同名不同参的函数或者方法之间,互相称为重载函数或者方法
    **抽象类** 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
    **封装**  封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
    **构造函数** 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
    **析构函数** 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
    

    访问控制

    php对属性或方法的访问控制,通过使用关键字实现

    public(公有):公有的类成员可以再任何地方被访问
    protected(受保护):受保护的类成员可以被其自身及其子类和父类访问
    private(私有):私有的类成员只能被其所在类访问
    

    接口

    使用接口,可以指定某个类必须实现那些方法,但不需要定义这些方法的具体内容
    接口中定义的所有方法都必须是共有,这是接口的特性
    类可以实现多个接口,用逗号来分隔多个接口的名称

    抽象类

    任何一个类,如果他至少有一个方法被声明为抽象的,那么这个类就必须被声明为抽象的。
    定义为抽象的类不能被实例化
    被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现
    继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类一样(或者更为宽松)。

    static关键字

    声明类属性或方法为static,就可以不实例化类而直接访问
    静态属性不能通过一个类已实例化的对象访问(但静态方法可以)
    由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法里不可用
    静态属性不可以由对象通过->操作符调用

    final关键字

    如果父类中的方法被声明为final,则子类无法覆盖该方法,如果一个类被声明为final,则不能被继承

    调用父类构造方法

    PHP不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用parent::__construct()