• PHP学习笔记2


    PHP Switch语句

    用于根据多个不同条件执行不同动作。如果不在每个条件后加break,将会输出所有结果。

     1 <?php
     2 $language="java";
     3 switch($language)
     4 {
     5     case "java":
     6         echo "right";
     7         break;
     8     case "javaScript";
     9         echo "false";
    10         break;
    11     default:
    12         echo "true";
    13 }

    PHP中的数组

    • 数值数组

    1 $stars = array["Venus","Pluto","Jupitor","Mars","Earth"];

    获取数组长度用count()函数。

    • 关联数组

    1 <?php
    2 $height=array("Annika"=>"160","Sophia"=>"177");
    3 
    4 //遍历关联数组用foreach
    5 foreach($height as $x=>$x_value)
    6 {
    7     echo "name=" . $x . ", height=" . $x_value;
    8     echo "<br>";
    9 }
    • 多维数组

    3.PHP数组排序函数

    • sort() - 对数组进行升序排列

    • rsort() - 对数组进行降序排列

    • asort() - 根据关联数组的值,对数组进行升序排列

    • ksort() - 根据关联数组的键,对数组进行升序排列

    • arsort() - 根据关联数组的值,对数组进行降序排列

    • krsort() - 根据关联数组的键,对数组进行降序排列

    4.PHP超级全局变量(superglobals)

    可以在一个脚本的全部域内使用:

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

    • $_SERVER(一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)

    • $_REQUEST(收集HTML表单提交的数据)

    • $_POST( 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post")

    • $_GET(同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。也可以收集URL中发送的数据。)

    • $_FILES

    • $_ENV

    • $_COOKIE

    • $_SESSION

    5.PHP魔术变量

    PHP有大量的预定义常量。很多要加载扩展库。

    • __LINE__(文件中的当前行号)

    • __FILE__(文件的完整路径和文件名)

    • __DIR__(文件所在的目录)

    • __FUNCTION__(返回当前函数名)

    • __CLASS__(返回类名)

    • __TRAIT__(Trait的名字)

    • __METHOD__(类的方法名,返回该方法被定义时的名字)

    • __NAMESPACE__(当前命名空间的名称)

    6.PHP类的定义

    • 类使用class关键字后加上类名定义。

    • 类名后的大括号内可以定义变量和方法。

    • 类的变量用var来声明

    • 函数只能通过实例化的对象来访问。

    7.PHP构造函数

    构造函数是一种特殊方法,主要用来在创建对象时初始化对象,即为变量成员赋初始值。

    1 function __construct($part1,$part2){
    2     $this->url = $part1;
    3     $this->title = $part2;
    4 }
    5 6 //初始化对象
    7 $tmall = new construct('www.tmall.com','天猫');
     

    8.PHP析构函数

    (destructor)与构造函数正好相反,当对象结束生命周期时,系统自动执行析构函数。

    function __destruct(){
       print "销毁"
    }

    9.继承

    PHP使用关键字extends来继承一个类,不支持多继承。

    class Child extends Parent

    10.方法重写

    如果从父类继承的方法不能满足子类的需求,可以在类外部对其进行改写。

    11.访问控制

    可以在变量、方法前添加关键字实现访问控制,没有添加的默认为共有:

    • public(公有):公有的类成员可以在任何地方被访问。

    • protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。

    • private(私有):私有的类成员则只能被其定义所在的类访问。

    12.接口

    使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

    接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

    接口中定义的所有方法都必须是公有,这是接口的特性。

    要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

    13.常量

    可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。

    常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。

    自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。

    14.抽象类

    任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。

    定义为抽象的类不能被实例化。

    被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

    继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。此外方法的调用方式必须匹配,即类型和所需参数数量必须一致。例如,子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突。

    15.static关键字

    声明类属性或方法为 static(静态),就可以不实例化类而直接访问。

    静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

    由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

    静态属性不可以由对象通过 -> 操作符来访问。

    自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。

     1 <?php
     2 class Foo {
     3   public static $my_static = 'foo';
     4   
     5   public function staticValue() {
     6      return self::$my_static;
     7   }
     8 }
     9 10 print Foo::$my_static . PHP_EOL;
    11 $foo = new Foo(); //foo
    12 13 print $foo->staticValue() . PHP_EOL; //foo
    14 ?>    
    16.final 关键字

    PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。

    17.调用父类构造方法

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

  • 相关阅读:
    六大设计原则之依赖倒置原则
    六大设计原则之里氏替换原则
    六大设计原则之单一设计原则
    六、Spring之DI的Bean的作用域
    五、spring之DI循环依赖
    四、spring之DI
    十二 NIO和IO
    十一 Pipe
    十 DatagramChannel
    九 ServerSocketChannel
  • 原文地址:https://www.cnblogs.com/annika/p/9126899.html
Copyright © 2020-2023  润新知