当前位置:首页 > PHP教程 > php应用 > 列表

PHP中=>和->以及::符号的用法

发布:smiling 来源: PHP粉丝网  添加日期:2022-05-15 11:39:42 浏览: 评论:0 

讲完了php基础运算符,下面再讲一下,php新手经常碰到的问题,->、=> 和 :: 这三个家伙是什么分别都是做什么的啊!看着就很晕。

没关系,下面我们做一下详细的解释,如果你有C++,Perl基础,你会发现这些家伙和他们里面的一些符号功能是差不多的。

‘- >'符号

插入式解引用操作符”(infix dereference operator)。换句话说,它是调用由引用传递参数的子程序的方法(当然,还有其它的作用)。正如我们上面所提到的,在调用PHP的函数的时候,大部分参数都是通过引用传递的。PHP中的‘->'功能就和它们在Perl或C++中一样。下面是一个简单的解引用的例子:

echo $x->def(); # 输出  

‘=>'操作符

在PHP的脚本中‘=>'操作符时很常见的。因为php数组函数很丰富,我们要经常用到数组,因为它操作数据很方便。

  1. $phparrnew array( in => 'reply,' 
  2.  
  3. side => 'left'
  4.  
  5. padx => 2m, 
  6.  
  7. pady => 2m, 
  8.  
  9. ipadx => 2m, 
  10.  
  11. ipady => 1m 
  12.  

顺便说一下,如果你需要用数字“大于等于”的符号,你应该用“>=”而不是“=>”。

::域运算符

在PHP中“::”这个叫范围解析操作符,又名域运算符

“::”符号可以认为是与C语言中的“.”相似的,而它更像C++中(Perl)的::类范围操作符。

php调用类的内部静态成员,或者是类之间调用就要用::

下面是一个例子:

  1. class A 
  2. static $count = 0; 
  3. static function haha() 
  4. // 
  5. function diaoyoug() 
  6. self::haha(); 
  7. self::$count
  8.  
  9. a.b.c; /* C语言中的 */ 
  10.  
  11. a::b::c(); // C++ 中的函数 
  12.  
  13. $a::b::c; # Perl 5中的标量 

“===”(三等号)

或许有人就疑问了,此符号除了判断两变量是否相等外,还会判断值类型是否一致,若值类型不一样,则会返回False,比如:$a="1";//字符型1 $b=1;//数字型1 当执行$a===$b;时,将返回False

“->”(减号、右尖括号)

用于类中,访问类里的函数或对象,比如:

  1. <?php  
  2. class Test {  
  3. function do_test() { 
  4.  echo "Doing foo.";  
  5. } }  
  6. $bar = new Test;  
  7. $bar->do_test();  
  8. ?> 

"=>"(等号、右尖括号)

数组中给值赋值,比如:$arr=array("one" =>("1"=>10, "2"=>20), "two"=>2); 那么$arr["one"]["1"]=10;

PHP中=>和->以及::的用法详解篇

1、=>的用法

在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如: 

$css=array('style'=>'0','color'=>'green');

则$css['style']=='0',$css['color']=='green'。

2、->的用法

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

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

输出结果:

  1. 123Array( 
  2.     [a] => 123 
  3.     [b] => 456) 
  4. 123A Object( 
  5.     [a] => 123 
  6.     [b] => 456) 

3、::的用法

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

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

  1. class Fruit { 
  2.     const CONST_VALUE = 'Fruit Color'
  3. $classname = 'Fruit'
  4. echo $classname::CONST_VALUE; // As of PHP 5.3.0 
  5. echo Fruit::CONST_VALUE; 
  6. ?> 

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

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

(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.     // Override parent's definition 
  11.     public function showColor() 
  12.     { 
  13.         // But still call the parent function 
  14.         parent::showColor(); 
  15.         echo "Apple::showColor()\n"
  16.     } 
  17.  
  18. $apple = new Apple(); 
  19. $apple->showColor(); 
  20. ?> 

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

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

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

  1. <?php  
  2.    
  3. class Fruit  
  4. {  
  5.     static function color()  
  6.     {  
  7.        return "color";  
  8.     } 
  9.  
  10.     static function showColor() 
  11.     { 
  12.         echo "show " . self::color(); 
  13.     } 
  14.  
  15. class Apple extends Fruit 
  16.     static function color() 
  17.     { 
  18.         return "red"
  19.     } 
  20.  
  21. Apple::showColor(); 
  22. // output is "show color"! 
  23.  
  24. ?>

Tags: => -> ::

分享到: