PHP关于=>和->以及::的用法

1、=>的用法

  在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如:
  $css=array('style'=>'0',‘color’=>‘green‘);
  则$css['style']=='0',$css['color']=='green'。

2、->的用法

  ->用来引用对象的成员(属性与方法);

 

复制代码
 1 <?php
 2   $arr=['a'=>123,'b'=>456];//数组初始化
 3   echo $arr['a'];//数组引用
 4   print_r($arr);//查看数组
 5   class A{
 6     public $a=123;
 7     public $b=456;
 8   }
 9   $obj=new A();
10   echo $obj->a;//对象引用
11   print_r($obj);//查看对象
12 ?>
复制代码

输出结果:

复制代码
123Array
(
    [a] => 123
    [b] => 456
)
123A Object
(
    [a] => 123
    [b] => 456
)
复制代码

3、::的用法

  双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态、const和类中重写的属性与方法。

  (1)Program List:用变量在类定义外部访问

复制代码
 1 <?php
 2 class Fruit {
 3     const CONST_VALUE = 'Fruit Color';
 4 }
 5 
 6 $classname = 'Fruit';
 7 echo $classname::CONST_VALUE; // As of PHP 5.3.0
 8 
 9 echo Fruit::CONST_VALUE;
10 ?>
复制代码

  (2)Program List:在类定义外部使用::

复制代码
 1   
 2 <?php
 3 class Fruit {
 4     const CONST_VALUE = 'Fruit Color';
 5 }
 6 
 7 class Apple extends Fruit
 8 {
 9     public static $color = 'Red';
10 
11     public static function doubleColon() {
12         echo parent::CONST_VALUE . "\n";
13         echo self::$color . "\n";
14     }
15 }
16 
17 Apple::doubleColon();
18 ?>
复制代码

  (3)Program List:调用parent方法

复制代码
 1 <?php
 2 class Fruit
 3 {
 4     protected function showColor() {
 5         echo "Fruit::showColor()\n";
 6     }
 7 }
 8 
 9 class Apple extends Fruit
10 {
11     // Override parent's definition
12     public function showColor()
13     {
14         // But still call the parent function
15         parent::showColor();
16         echo "Apple::showColor()\n";
17     }
18 }
19 
20 $apple = new Apple();
21 $apple->showColor();
22 ?>
复制代码

  (4)Program List:使用作用域限定符

复制代码
 1   
 2 <?php
 3     class Apple
 4     {
 5         public function showColor()
 6         {
 7             return $this->color;
 8         }
 9     }
10 
11     class Banana
12     {
13         public $color;
14 
15         public function __construct()
16         {
17             $this->color = "Banana is yellow";
18         }
19 
20         public function GetColor()
21         {
22             return Apple::showColor();
23         }
24     }
25 
26     $banana = new Banana;
27     echo $banana->GetColor();
28 ?>
复制代码

  (5)Program List:调用基类的方法

复制代码
 1     
 2 <?php
 3 
 4 class Fruit
 5 {
 6     static function color()
 7     {
 8         return "color";
 9     }
10 
11     static function showColor()
12     {
13         echo "show " . self::color();
14     }
15 }
16 
17 class Apple extends Fruit
18 {
19     static function color()
20     {
21         return "red";
22     }
23 }
24 
25 Apple::showColor();
26 // output is "show color"!
27 
28 ?>
复制代码
posted @ 2017-09-02 17:28  终极用户  阅读(415)  评论(0编辑  收藏  举报