PHP中的符号 ->、=> 、 :: 和===的区别和用法?

php新手经常碰到的问题,->、=> 和 :: 这三个家伙是什么意思,都是做什么的啊!看着就很晕。

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

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

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

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

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

比如:

<?php class Test { function do_test() { echo "Doing foo."; } } $bar = new Test; $bar->do_test(); ?>

“=>”(等号、右尖括号)

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

 $phparr= new array( in => 'reply,'
   side => 'left',
   padx => 2m,
   pady => 2m,
   ipadx => 2m,
   ipady => 1m
   ) 

数组中给值赋值,

比如:

$arr=array("one" =>("1"=>10, "2"=>20), "two"=>2); 

那么$arr[“one”][“1”]=10;

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

“::”(双冒号)

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

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

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

下面是一个例子:

class A
  {
    static $count = 0;
    static function haha()
    {
       //
    }  
  function diaoyoug()
    {
       self::haha();
       self::$count;
    }
  }

a.b.c; /* C语言中的 */

a::b::c(); // C++ 中的函数

$a::b::c; # Perl 5中的标量

“===”(三等号)

或许有人就疑问了,此符号除了判断两变量是否相等外,还会判断值类型是否一致,若值类型不一样,则会返回False。

比如:$a=”1″;//字符型1 $b=1;//数字型1  当执行$a===$b;时,将返回False

留下评论