详解php中 === 的使用

当比较简单类型时(如String int float bool),判断的是"相等 && 类型一样"

$num1 = 123;
$num2 = 123;
$num3 = '123';
var_dump($num1 === $num2);//输出 bool(true)
var_dump($num3 === $num1);//输出 bool(false) 因为$num3是字符串 $num1是整型

比较对象时,判断的是"是否指向同一个对象"

class Person {
public $name;
}
$p1 = new Person();
$p1->name = 123;
$p2 = new Person();
$p2->name = 123;
var_dump($p1 === $p2);//输出 bool(false),这是俩对象,虽然都是Person类型且值相等
var_dump($p1 == $p2); //输出 bool(true),俩对象的值是一样的。

以上所述是小编给大家介绍的php中 === 的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • PHP判断表达式中括号是否匹配的简单实例

    如下所示: <?php /** * title: 判断表达式中括号是否匹配 * Description: () 匹配 )(不匹配 利用压栈和出栈 * @author Mr Lv */ function isValid($expstr) { $temp = array(); for ($i=0; $i<strlen($expstr); $i++) { $ch = $expstr[$i]; switch($ch) { case '(': array_push($temp, '('); break;

  • php数组查找函数in_array()、array_search()、array_key_exists()使用实例

    php在数组中查找指定值是否存在的方法有很多,记得很久以前我一直都是傻傻的用foreach循环来查找的,下面我主要分享一下用php内置的三个数组函数来查找指定值是否存在于数组中,这三个数组分别是 in_array(),array_search(),array_key_exists(). 首先分别介绍一下各自的定义与作用 in_array(value,array,type) 该函数的作用是在数组array中搜索指定的value值,type是可选参数,如果设置该参数为 true ,则检查搜索的数据与

  • php数组函数array_key_exists()小结

    array_key_exists()函数判断某个数组中是否存在指定的key,如果key存在,则返回true,否则返回flase array_key_exists(key,array); key:必需.规定键名 array:必需.规定输入的数组 <?php $a = array('a'=>'Dog','b'=>'Cat'); if(array_key_exists('a',$a)){ echo 'Key exists!'; } else{ echo 'Key does not exist!

  • php数组函数序列之array_key_exists() - 查找数组键名是否存在

    array_key_exists() 定义和用法 array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false. 语法 array_key_exists(key,array) 参数 描述 key 必需.规定键名. array 必需.规定输入的数组. 例子 1 复制代码 代码如下: <?php $a=array("a"=>"Dog","b"=>&quo

  • 详解PHP编码转换函数应用技巧

    在PHP中有数量庞大的函数来支持我们的需求应用.下面介绍的这个函数就是有关PHP编码转换函数.希望对大家有所帮助.mb_convert_encoding 函数为PHP内部多字节字符串编码转换函数. 可以在有需要的使用场合(如:解决在GB2312编码环境下使用Ajax产生的中文字乱码的问题)方便进行编码转换,以解决网页乱码的问题,使用非常方便,效率非常高,几乎支持所有编码.PHP 4 >= 4.0.6.PHP 5 版本支持. PHP编码转换函数原型: /**  * 多字节字符串编码转换函数  * 

  • php mysql访问数据库的步骤详解

    php访问mysql数据库的步骤 官方说5.5开始就废弃mysql_query()这块东西很多,当然常用的就几个还是看手册吧. 这里简单记录一下.在我失忆之后可以找回一点记忆.最近一直用框架原生的都快忘了. 1.打开mysql连接 $resource1 = mysql_connect('localhost', 'root', 'root123');//参数1 主机名或主机ip.参数2数据库用户名.参数3数据库用户密码 if (!$resource1) { die('could not conne

  • PHP实现简易blog的制作

    最近,有时间看了点PHP的代码.参考PHP100教程做了简单的blog,这里面简单的记录一下. 首先是集成环境,这里选用的WAMP:http://www.wampserver.com/en/ 首先通过,phpMyAdmin创建一张blog表. 纯界面操作,过程比较简单,需要注意的是id是主键,并且设置auto_increnent 选项,表示该字段为空时自增.其它字段就比较随便了,注意类型和长度即可. 创建数据连接    在./wamp/www/blog目录下创建conn.php文件. <?php

  • php array_key_exists() 与 isset() 的区别

    php array_key_exists用于检查某个键名是否存在于数组中,而isset也可以用于检测数组中某个键名是否存在,那么二者有什么区别呢?本文章将为大家讲解array_key_exists() 与 isset() 使用中的一些区别 一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组. 但是最主要的区别在于在设定的条件下的返回值. 现在我们来验证一下这个最主要的区别. array_key_exists() array_key_exists()

  • 详解IE6中的position:fixed问题与随滚动条滚动的效果

    详解IE6中的position:fixed问题与随滚动条滚动的效果 前言: 在<[jQuery]兼容IE6的滚动监听>(点击打开链接)提及到解决IE6fixed问题,具体是要引入一个js文件,还要声明一条脚本就为这个div声明fixed定位去解决,起始这样很不好啊.引入的Javascript不好管理之余,还要在head声明引入javascript,之后又要给这个div声明一个id,之后又要在脚本出弄一条声明,实在是烦死了. 使用position:fixed无非是想做出如下的效果. 基本上pos

  • 详解Angular中$cacheFactory缓存的使用

    最近在学习使用angular,慢慢从jquery ui转型到用ng开发,发现了很多不同点,继续学习吧: 首先创建一个服务,以便在项目中的controller中引用,服务有几种存在形式,factory();service();constant();value();provider();其中provider是最基础的,其他服务都是基于这个写的,具体区别这里就不展开了,大家可以看看源码:服务是各个controller之间通话的重要形式,在实际项目中会用的很多,下面是代码: angular.module

  • 详解AngularJS中$filter过滤器使用(自定义过滤器)

    1.内置过滤器 * $filter 过滤器,是angularJs中用来处理数据以更好的方式展示给我用户.比如格式化日期,转换大小写等等. * 过滤器即有内置过滤器也支持自定义过滤器.内置过滤器很多,可以百度.关键是如何使用: * 1.在HTML中直接使用内置过滤器 * 2.在js代码中使用内置过滤器 * 3.自定义过滤器 * * (1)常用内置过滤器 * number 数字过滤器,可以设置保留数字小数点后几位等 * date 时间格式化过滤器,可自己设置时间格式 * filter 过滤的数据一般

  • 详解AngularJS中的表单验证(推荐)

    AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则式,很方便的完成验证,理论上所有的验证都可以用正则式完成 //javascript $scope.mobileRegx = "^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\\d{8}$"; $scope.emailRegx = "^[a-z]([a-z0-9]*[-_]?

  • 详解Java中@Override的作用

    详解Java中@Override的作用 @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法. 举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性. @Overr

  • 详解Java中多线程异常捕获Runnable的实现

    详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口的LayerInitTask类,ThreadException类,线程安全的Vector 3.思路: 向LayerInitTask中传入Vector,记录异常情况,外部遍历,判断,抛出异常. 4.代码: package step5.exception; import java.util.Vector

  • 详解Struts2中对未登录jsp页面实现拦截功能

    Struts2中拦截器大家都很经常使用,但是拦截器只能拦截action不能拦截jsp页面.这个时候就有点尴尬了,按道理来说没登录的用户只能看login界面不能够通过输入URL进行界面跳转,这显然是不合理的.这里介绍Struts2中Filter实现jsp页面拦截的功能.(有兴趣的人可以去研究Filter过滤器的其它用法,因为利用过滤器也可以实现action拦截的功能) 下面直接上代码,边看边分析实现步骤和原理. 1.web.xml中的配置信息: <filter> <filter-name&

  • 详解JSP中使用过滤器进行内容编码的解决办法

    详解JSP中使用过滤器进行内容编码的解决办法 问题 当通过JSP页面,向数据库中插入记录的时候,可能因为JSP页面编码原因,导致插入到数据库中的新纪录出现乱码.因此需要对JSP页面中的内容进行编码操作,从而保证与数据库中的编码一致. 解决方案 使用JSP中过滤器进行处理.处理步骤如下 1.新建一个servlet,使其实现javax.servlet.Filter接口 2.修改Servlet/JSP Mapping URL ,将其改为 /EncodingFilter 3.在EncodingFilte

  • 详解C++中String类模拟实现以及深拷贝浅拷贝

    详解C++中String类模拟实现以及深拷贝浅拷贝 在C语言中/C++中,字符串是一个应用很广泛的类型,也是很基础的类型,C语言并没有直接处理字符串的操作而是采用字符指针和字符串数组进行操作,而在C++中标准库为我们封装了一个字符串的类供我们使用,使用需要#inlcude <string>头文件.我们也可以自己模拟实现一个简单的String类. 在模拟实现String类的过程中,不可避免的会遇到深拷贝浅拷贝的问题,下面就深拷贝浅拷贝做一个简介.所谓深拷贝浅拷贝,简单来说就是浅拷贝只是简单的将值

  • 详解mysql中的冗余和重复索引

    mysql允许在相同列上创建多个索引,无论是有意还是无意,mysql需要单独维护重复的索引,并且优化器在优化查询的时候也需要逐个地进行考虑,这会影响性能. 重复索引是指的在相同的列上按照相同的顺序创建的相同类型的索引,应该避免这样创建重复索引,发现以后也应该立即删除.但,在相同的列上创建不同类型的索引来满足不同的查询需求是可以的. CREATE TABLE test( ID INT NOT NULL PRIMARY KEY, A INT NOT NULL, B INT NOT NULL, UNI

随机推荐