zoukankan      html  css  js  c++  java
  • PHP学习笔记





    PHP的基本语法介绍
    A. php可以和html代码混合
    a) 1.一般用法
    <?php
    //php代码
    ?>


    2. <?php
    //php代码
    ?>
    //一部分html代码。
    <?php
    //php代码
    ?>


    b) Script用法
    <script language=”php”>
    //php代码
    </script>


    c) 如果只是为了显示一个变量
    <?=$变量名?>


    B. PHP代码的注释
    注释多行:/*xxxxx*/
    注释单行://xxxxx




    C. Php的基本语法加强
    Parse:解析
    Error:错误
    Syntax:语法
    1.php可以喝HTML混用
    2.php的变量的定义使用
    //php中,定义变量以$打头。
    $a = 890;。
    3.Php的变量的数据类型,是变化的。根据上下文变化。
    4.变量区分大小写
    5.变量的名称以字母,或者下划线开头
     


    D.
    1. 构造函数
    1. public function __construct(){}
    2. public function 类名(){}
    2. 析构函数
    1. Function __destrusct(){}
    3. 静态变量
    1. 在类中定义静态变量:
    [访问修饰符] static $变量名:
    2. 访问静态变量
    类内:self::$变量名
          类名::$变量名
    类外:类名::$变量名 
    4. 静态方法
    定义:static function 方法名(){}
    注意,不能访问非静态成员
    5. 继承
    Class 类名 entends 父类名{}
    1. 父类的public ,protected 的属性和方法被继承。Private的属性和方法没继承。
    2. 一个类只能继承一个父类,若希望继承多个类的属性和方法,就使用多层继承。
    3. 当创建子类对象时,默认情况下,不会自动调用父类的构造方法。
    4. 如果希望调用父类的方法,或者其他的方法。
    类名::方法名。Parent::方法名()
    5. 当子类方法和父类完全一样时,则是方法的覆盖。
    6. 重载
     PHP5的重载是通过魔术函数来实现方法重载的效果。
    __call:当一个对象调用某个方法,而该方法不存在时,系统则会自动调用__call
    例子:
    <?php
    class A{
    public function test1($p)
    {
    echo "test1";
    }
    public function test2($p)
    {
    echo "test2";
    }
    function __call($method,$p)
    {
    var_dump($p);
    if (count($p)==1) 
    {
    $this->test1($p);
    }
    else if(count($p)==2)
    {
    $this->test2($p);
    }
    }
    }
    $a = new A();
    $a->test(1,2); 

    ?>
    __call函数的第一个参数为想调用的函数名,第二个为参数个数。通过这两个,来确定想要运行的函数。比如当函数名为test且参数为一个的时候运行test1, 当函数名为test且参数为两个的时候运行test2。使用的效果,就是重载。
    7. 方法覆盖
    问题
    当一个父类知道子类都有一个方法,但无法确定实现方法。可以让子类去覆盖。
    <?php 

    class Animal
    {
    public $name;
    protected $price;


    function cry()
    {
    echo "不知道怎么叫";
    }
    }

    class Pig extends Animal {
    function cry()
    {
    echo "哼哼";
    }
    }

    class Dog extends Animal{
    //覆盖
    function cry(){
    echo "汪汪";
    }
    }

    $a = new Pig;
    $a->cry();

    ?>


    细节:
    1. 子类的方法名和参数列表个数要和父类一样,参数名没要求。
    2. 如果子类要去调用父类方法,parent::方法名或者父类名::方法名
    3. 实现覆盖时候,访问修饰符可以不同,但是子类范围要大于父类


    8. 抽象类
    为什么需要抽象类:
    实际开发中,有一种类是把其他的同一类型的类的共同点抽出来,作为他们的父类,本身不需要实例化。主要用途就是给别的类继承,以达到代码复用。比如汽车卡车抽象出来就是交通工具。
    注意事项
    1.基本用法:
    Abstract class 类名{
    Code
    }


    2.如果一个类的修饰符是abstract。那么这个类就是抽象类,同样,方法也是。如果是抽象方法,就不能写方法体(实现)。
    3.抽象类可以没有抽象方法以及可以有实现了的方法
    4.非抽象类不能有抽象方法。
    5.非抽象类若继承于抽象类,则必须实现抽象类中的全部抽象方法,或者自己成为一个新的抽象类
    9. 接口类
    1. 接口的使用基本方法
    Interface 接口名{
     code
    }
    接口的方法都不能有方法体。
    实现接口
    Class 类名 implements 接口名1,接口2{
       code
    }


    接口的作用就是声明一些方法,让其他的类实现。
     


    不能实例化一个接口类。
    接口中的属性必须是常量,并且是public
    接口的方法是public,不能是其他。
    类和关系,一览图。
     
    一个接口可以继承多个其他的接口。
    一个类实现了某个接口。必须实现其所有方法


    10. Final
    1. 如果我们希望某个类不被其他的类继承。可以使用final
    final class A{
    code
    }
    2. 如果我们希望某个方法不能被子类改写。可以使用final来修饰。
    3. Final关键字不能修饰属性。
    11. Const


    Class A{
    Const 常量名(不用加$) = 赋初值;
    }
    使用 类名::常量名


    12. 综合练习
  • 相关阅读:
    spring-mvc dispatcherServlet
    常用注解
    spring基础
    消息转换
    高级装配
    Leetcode第242题:有效的字母异位词
    Leetcode第76题:最小覆盖子串
    Leetcode633题平方数之和
    Leetcode454题四数之和II
    java从虚拟机执行角度解析案例(转)
  • 原文地址:https://www.cnblogs.com/zkkkkkky/p/4422998.html
Copyright © 2011-2022 走看看