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/

你可能感兴趣的:(PHP)