zoukankan      html  css  js  c++  java
  • php总结_1

     1 ?php
     2 //检测变量类型,自己用的最多的是is_array()了,其他的几乎没用过
     3 $array = array(1,9.9,'abc',array(1,2,3),true,null,);
     4 v(is_bool(111));    //false
     5 v(is_integer(9.9));    //false
     6 v(is_double(9.9));    //true
     7 v(is_string('abc'));    //true
     8 v(is_null(''));        //false
     9 v(is_null(null));    //true
    10 v(is_array($array));    //true
    11 function v($var){
    12     var_dump($var);
    13 }
    14 ?>

    //类型提示

     1 <?php
     2 class A{
     3     public $name = 'a';
     4     public function say(){
     5         echo 'I am ',$this->name;
     6     }
     7 }
     8 class B{
     9     //类型提示
    10     public function say(A $A){
    11         return $A->say();
    12     }
    13 }
    14 class C{}
    15 $A = new A();
    16 $B = new B();
    17 $B->say($A);        //I am a
    18 $B->say(new C());    //报错 Argument 1 passed to B::say() must be an instance of A, instance of C given
    19 ?>

    静态方法和属性
    static关键字是在php 5才引入的。
    静态方法是以类为作用域的函数,不能访问这个类中的普通属性,因为普通属性属于一个对象,但可访问静态属性。

     1 <?php
     2 class A{
     3     static public $msg='hello';
     4     static function say(){
     5         return self::$msg;
     6     }
     8 }
     9 class B extends A{
    10     static public $msg = 'world';
    11     static function say(){
    12         return parent::say().' '.self::$msg;
    13     }
    14 }
    15 echo B::say();        //hello world
    16 ?>

    常量:类访问,声明时无需$符,且值不可改

     1 <?php
     2 //类访问,声明时无需$符,且值不可改
     3 class A{
     4     const PI = 3.14;
     5     public function test(){
     6         //self::PI = 3.15;    //报错
     7         return self::PI;
     8     }
     9 }
    10 $a = new A();
    11 echo $a::PI;        //3.14
    12 echo $a->test();    //3.14
    13 ?>

    抽象类:PHP 5引入,不能被实例化,只定义或部分实现子类需要的方法。子类继承并实现其中的抽象方法,使抽象类具体化。

     1 <?php
     2 abstract class A{
     3     protected $name;
     4     public function sing(){
     5 
     6     }
     7     abstract public function eat();        //以分号结束
     8 }
     9 //$a = new A();    //Cannot instantiate abstract class A
    10 
    11 class dog extends A{
    12     // Class dog contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (A::eat)
    13 }
    14 ?>

    多数情况下,抽象类至少包含一个抽象方法,其中不能有具体内容。如下:

      abstrac function test();

    抽象类的每个子类都必须实现抽象类中的所有抽象方法。新的实现方法的访问控制权限不能比抽象方法严格,参数个数也要一致。

    原文博客地址:http://www.cnblogs.com/lltong/

  • 相关阅读:
    【我也不知道是从哪儿来的题】—树(矩阵树定理)
    【我也不知道是从哪儿来的题】—树(矩阵树定理)
    【BJOI2019 Day2】简要题解
    【BJOI2019 Day2】简要题解
    【BJOI2019 Day1】简要题解
    【BJOI2019 Day1】简要题解
    【BZOJ3935】—RBTree(树形dp)
    【BZOJ3935】—RBTree(树形dp)
    2016-8-12
    深入理解web项目的配置文件
  • 原文地址:https://www.cnblogs.com/lltong/p/3382503.html
Copyright © 2011-2022 走看看