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 => -> ::内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-09-21

PHP中-&gt;和=&gt;的含义及使用示例解析

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

oracle中decode函数的使用方法示例

decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(value 1) ELSIF 条件=值2 THEN RETURN(value 2) ...... ELSIF 条件=值n THEN RETURN(value 3) ELSE RETURN(default) END IF sql测试 select empno,decode(empn

python中列表的含义及用法

示例 列表是元素的集合,存储在一个变量中.列表中存储的元素类型没有限制,下面是列表的一个简单例子. students = ['bernice', 'arron', 'cody'] for student in students: print("Hello, " + student.title() + "!") 命名和定义列表 因为列表是对象的集合,所以给它们一个复数的名称是很好的做法.如果列表中的每一项都是一个 car, 就命名列表为 'cars'.这样给你了一种直

MySQL中使用去重distinct方法的示例详解

一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段 用法注意: 1.distinct[查询字段],必须放在要查询字段的开头,即放在第一个参数: 2.只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用: 3.DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,即查出的参数拼接每行记录

详解Angular2中Input和Output用法及示例

对于angular2中的Input和Output可以和AngularJS中指令作类比. Input相当于指令的值绑定,无论是单向的(@)还是双向的(=).都是将父作用域的值"输入"到子作用域中,然后子作用域进行相关处理. Output相当于指令的方法绑定,子作用域触发事件执行响应函数,而响应函数方法体则位于父作用域中,相当于将事件"输出到"父作用域中,在父作用域中处理. 看个angular2示例吧,我们定义一个子组件,获取父作用域的数组值并以列表形式显示,然后当点击

C++中const用于函数重载的示例代码

常成员函数和非常成员函数之间的重载 首先先回忆一下常成员函数 声明:<类型标志符>函数名(参数表)const: 说明: (1)const是函数类型的一部分,在实现部分也要带该关键字. (2)const关键字可以用于对重载函数的区分. (3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数. (4)非常量对象也可以调用常成员函数,但是如果有重载的非常成员函数则会调用非常成员函数. 重载看例子: #include<iostream> u

C++中调用Lua配置文件和响应函数示例

Lua是脚本语言,最大的优势就是轻巧灵便,不用编译.当C的框架写好,只要更改lua的相应处理即可以更改功能,并且不用重新编译.以下是在C中调用Lua资源方法的示例程序:   C++端: // Lua1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<stdio.h> extern "C" { //如不用extern会出现连接错误,编译成了C++文件 #include <lua.h> #

javaweb设计中filter粗粒度权限控制代码示例

1 说明 我们给出三个页面:index.jsp.user.jsp.admin.jsp. index.jsp:谁都可以访问,没有限制: user.jsp:只有登录用户才能访问: admin.jsp:只有管理员才能访问. 2 分析 设计User类:username.password.grade,其中grade表示用户等级,1表示普通用户,2表示管理员用户. 当用户登录成功后,把user保存到session中. 创建LoginFilter,它有两种过滤方式: 如果访问的是user.jsp,查看sess

PHP中通过trigger_error触发PHP错误示例

PHP中通过trigger_error触发PHP错误示例 [错误抑制符@] 除了 php.ini 中 error_reporting 和 display_errors 的设置.error_reporting() 函数.ini_set() 函数 外,还可以使用错误抑制符@ 屏蔽错误的输出. @ 加在任何会产生错误的表达式之前. [通过 trigger_error 触发 PHP 错误] 触发错误的功能不只限于 PHP 解析器,还可以通过 trigger_error() 函数触发错误,类似于异常中抛出

在Python中使用AOP实现Redis缓存示例

越来越觉得的缓存是计算机科学里最NB的发明(没有之一),本文就来介绍了一下在Python中使用AOP实现Redis缓存示例,小伙伴们一起来了解一下 import redis enable=True #enable=False def readRedis(key): if enable: r = redis.Redis(host='10.224.38.31', port=8690,db=0, password='xxxx') val = r.get(key) if val is None: pri

Java中LinkedList详解和使用示例_动力节点Java学院整理

第1部分 LinkedList介绍 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. LinkedList 实现 List 接口,能对它进行队列操作. LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用. LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆. LinkedList 实现java.io.Serial