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. C#中的@符号用法

    C#中的@符号其实有很多的用法,我们来看看@有什么神奇之处. 1.限定字符串 用 @ 符号加在字符串前面表示其中的转义字符“不”被处理. 如果我们写一个文件的路径,例如"D:/文本文件&qu ...

  2. Linux的nm查看动态和静态库中的符号

    功能 列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等.所谓符号,通常指定义出的函数,全局变量等等. 使用 nm [option(s)] [file(s)] 有用的optio ...

  3. DotNet中人民币符号的输出

    DotNet中人民币符号“¥”的输出<html> <head>DotNet中人民币符号的输出</head> <body> <p>¥100元& ...

  4. C#中的@符号

      C# 中的 @ 符号 C# 中的 @ 符号其实有很多的用法,我们来看看 @ 有什么神奇之处. 1. 限定字符串 用 @ 符号加在字符串前面表示其中的转义字符 “ 不 ” 被处理. 如果我们写一个文 ...

  5. Bat 中特殊符号

    批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @\\隐藏命令的回显. ~\\在for中表示使用增强的变量扩展:在set中表示使用扩展环境变量指定位置的字符串:在set ...

  6. C++中弱符号(弱引用)的意义及实例

    今天读别人代码时看到一个“#pragma weak”,一时没明白,上网研究了一个下午终于稍微了解了一点C.C++中的“弱符号”,下面是我的理解,不正确的地方望大家指正. 本文主要从下面三个方面讲“弱符 ...

  7. 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

    查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求.   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Vis ...

  8. 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】

    原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创]   第一题 #include<stdio.h> int main() { unsigned int a=6; i ...

  9. URL中特殊符号的处理

    问题描述 我们在对接第三方系统的时候通常需要get或post来传输数据,但此时如果参数中存在&% #*!包括空格等特殊符号的时候就无法正常请求具体表现在参数获取不正确或者获取不到参数,甚至有时 ...

  10. C++编译连接过程中关于符号表的报错分析

    是这样的,在学习郑莉老师的多文件结构和编译预处理命令章节时候,看到书里有这么一张图描述如下:#include指令作用是将指定的文件嵌入到当前源文件中#include指令所在的位置. 然后我就想5_10 ...

随机推荐

  1. zookeeper学习(2)----zookeeper和kafka的关系

    转载: Zookeeper 在 Kafka 中的作用 leader 选举 和 follower 信息同步 如上图所示,kafaka集群的 broker,和 Consumer 都需要连接 Zookeep ...

  2. HDU 4862 Jump 任意起点最大权K链不相交覆盖

    你可以从任意起点开始起跳最多K次 每次跳你可以选择往右或者往下跳 从(x1,y1)跳到(x2,y2) 消耗的能量是曼哈顿距离-1 但是如果每次跳的起点和终点格子里的数字是相同的为X的话你会得到X能量 ...

  3. jQuery基础知识1

    jquery的概念 js query jquery库 封装了大量js,封装js的入口函数.兼容性问题.DOM操作.事件.ajax 使用jquery 下载包 引用 <script src=&quo ...

  4. datatable修改每页默认显示的数量

    datatable修改每页默认显示的数量 一.总结 一句话总结: iDisplayLength属性:'iDisplayLength':50 1.datatable默认每页显示50个? iDisplay ...

  5. 遍历SQL SERVER中所有存储过程和触发器

    如果需要查找某个存储过程或触发器中是否含有某段文本(比如:你想知道有哪些存储过程操作了某个表) 可以这么写 select name from sysobjects o, syscomments s w ...

  6. @PostMapping和@PutMapping区别

    @PostMapping和@PutMapping作用等同,都是用来向服务器提交信息.如果是添加信息,倾向于用@PostMapping,如果是更新信息,倾向于用@PutMapping.两者差别不是很明显 ...

  7. 编写一个求圆面积的C语言程序

    #include<stdio.h>   //文件包含//#define PI 3.14     //宏定义//void main()         { float r,s; scanf( ...

  8. NAS,IP SAN以及iSCSCI SAN存储的一些认识和理解

    由 cxemc 在 2013-9-24 上午9:12 上创建,最后由 cxemc 在 2013-9-24 上午9:12 上修改 版本 1 1. NAS和SAN存储 a. NAS本身可以做为一台网络设备 ...

  9. 爬虫(十七):scrapy分布式原理

    一:scrapy工作流程 scrapy单机架构: 单主机爬虫架构: 分布式爬虫架构: 这里重要的就是我的队列通过什么维护?这里一般我们通过Redis为维护,Redis,非关系型数据库,Key-Valu ...

  10. 异步协程asyncio+aiohttp

    aiohttp中文文档 1. 前言 在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞.比如在网络爬虫中,如果我们使用 requests 库来进行请求的话,如果网站响应速度过慢,程序 ...