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

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

‘- >'符号

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

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

‘=>'操作符

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

  $phparr= new array( in => 'reply,'

  side => 'left',

  padx => 2m,

  pady => 2m,

  ipadx => 2m,

  ipady => 1m

  )

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

::域运算符

在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

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

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

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

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

数组中给值赋值,比如:$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、->的用法

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

$arr=['a'=>123,'b'=>456];//数组初始化
echo $arr['a'];//数组引用
print_r($arr);//查看数组
class A{
    public $a=123;
    public $b=456;
}
$obj=new A();
echo $obj->a;//对象引用
print_r($obj);//查看对象
?>

输出结果:

123Array(
    [a] => 123
    [b] => 456)
123A Object(
    [a] => 123
    [b] => 456)

3、::的用法

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

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

class Fruit {
    const CONST_VALUE = 'Fruit Color';
}
$classname = 'Fruit';
echo $classname::CONST_VALUE; // As of PHP 5.3.0
echo Fruit::CONST_VALUE;
?>

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


  <?php
  class Fruit {
      const CONST_VALUE = 'Fruit Color';
  } 

  class Apple extends Fruit
  {
      public static $color = 'Red';

      public static function doubleColon() {
          echo parent::CONST_VALUE . "\n";
          echo self::$color . "\n";
      }
  }

  Apple::doubleColon();
  ?>

(3)Program List:调用parent方法

  <?php
  class Fruit
  {
      protected function showColor() {
          echo "Fruit::showColor()\n";
      }
  } 

  class Apple extends Fruit
  {
      // Override parent's definition
      public function showColor()
      {
          // But still call the parent function
          parent::showColor();
          echo "Apple::showColor()\n";
      }
  }

  $apple = new Apple();
  $apple->showColor();
  ?>

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


  <?php
      class Apple
      {
          public function showColor()
          {
              return $this->color;
          }
      }

      class Banana12     {
          public $color;

          public function __construct()
          {
              $this->color = "Banana is yellow";
          }

          public function GetColor()
          {
              return Apple::showColor();
          }
      }

      $banana = new Banana;
      echo $banana->GetColor();
  ?>

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


  <?php 

  class Fruit
  {
      static function color()
      {
         return "color";
      }

      static function showColor()
      {
          echo "show " . self::color();
      }
  }

  class Apple extends Fruit
  {
      static function color()
      {
          return "red";
      }
  }

  Apple::showColor();
  // output is "show color"!

  ?>

到此这篇关于PHP中=>和->以及::符号的用法的文章就介绍到这了,更多相关PHP => -> ::内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHP中->和=>的含义及使用示例解析

    在学习PHP中,遇到了->和=>这两个符号. 刚遇到这两个符号的时候不知道它们代表的含义,在经过百度后才发这两个符号的秘密. 下面来看一下在PHP中->的秘密,如下代码. <?php class Car { public $speed = 0; //增加speedUp方法,使speed加10 public function speedUp(){ $this->speed+=10; } } $car = new Car(); $car->speedUp(); echo $

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

    没关系,下面我们做一下详细的解释,如果你有C++,Perl基础,你会发现这些家伙和他们里面的一些符号功能是差不多的. '- >'符号 插入式解引用操作符"(infix dereference operator).换句话说,它是调用由引用传递参数的子程序的方法(当然,还有其它的作用).正如我们上面所提到的,在调用PHP的函数的时候,大部分参数都是通过引用传递的.PHP中的'->'功能就和它们在Perl或C++中一样.下面是一个简单的解引用的例子: echo $x->def();

  • Mabitis中的#与$符号区别及用法介绍

    一.介绍 mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = "Jack"; 上述 sql 中,我们希望 name 后的参数 "Jack" 是动态可变的,即不同的时刻根据不同的姓名来查询用户.在 Mapper.xml文件中使用如下的 sql 可以实现动态传递参数 name: select * from u

  • R语言中文本文件分割 符号 sep的用法

    一般情况下: csv 文件 sep = "," # 以逗号分割 txt 文件 sep = "\t" #以制表符分割 其他文件 sep = " " #以空格分割 具体情况,具体调整 sep= 文件中的字段分离符,用于文件数据文本的读取和保存过程中指定分割符号. 补充:用R语言把超大文本文件拆分成几个小文本文件 近一段时间一直在研究一些医院的数据. 前两天遇到一个尴尬:想打开一个仅有3G左右的文本文件(有时候必须要打开,直接传到数据库满足不了需求),

  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试.难以阅读. 这些特殊符号罗列出来大致如下: 复制代码 代码如下: # ; ;; . , / / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || &~ ~

  • C语言中的强符号和弱符号介绍

    之前在extern "C" 用法详解中已经提到过符号的概念,它是编译器对变量和函数的一种标记,编译器对C和C++代码在生产符号时规则也是不一样的,符号除了本身名字的区别外,还有强符号和弱符号之分 我们先看一段简单的代码 复制代码 代码如下: /* test.c */  void hello();  int main()  {      hello();      return 0;  } 很显然,这段代码是没法链接通过的,它会报错undefined reference to hello

  • 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/test$ldd test libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000) libm.so.6 => /lib64/libm.so.6 (0x0000003996400000) libgcc_s.so.1 => /

  • php中static和const关键字用法分析

    本文实例讲述了php中static和const关键字用法.分享给大家供大家参考,具体如下: static关键字在类中描述的成员属性和成员函数都是静态的. static成员能限制外部的访问,因为static成员是属于类的,而不是属于任何对象实例. 从内存的角度讲,其中对象是放在"堆内存"中,对象的引用是放在"栈内存"中,而静态成员被放在初始化静态段中,在类的第一次加载的时候加入的.可以让对内存中的所有对象所共享.如下图所示: <?php class Person

  • Android中Split()字符串分割特殊用法案例详解

    split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split("$")//$为要分割的字符 Android:分割字符串需要加上中括号split("[$]")//$为要分割的字符 2.特殊用法--当split()分割字符串遇上特殊符号 案例分析 String str = "abc|dfg"; String[] all=str.split("|"); system.out.println(all[0]);

  • 详解Python3中的正则表达式的基本用法

    正则表达式 本节我们看一下正则表达式的相关用法,正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索.替换.匹配验证都不在话下. 当然对于爬虫来说,有了它,我们从HTML里面提取我们想要的信息就非常方便了. 实例引入 说了这么多,可能我们对它到底是个什么还是比较模糊,下面我们就用几个实例来感受一下正则表达式的用法. 我们打开开源中国提供的正则表达式测试工具http://tool.oschina.net/regex/,打开之后我们可以输入待匹配的文本,然后选择常用的

  • Python中sys模块功能与用法实例详解

    本文实例讲述了Python中sys模块功能与用法.分享给大家供大家参考,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Python脚本的命令行参数列表.argv[0]是脚本名称(依赖于操作系统,无论这是否是完整路径名).如果使用-c解释器的命令行选项执行命令,argv[0]则将其设置为字符串'-c'.如果没有脚本名称传递给Python解释器,argv[0]则为空字符串. 要循环标准输入或命

随机推荐