PHP比较数组、对象是否为空
PHP简单对比对象、数组是不是为空:
1 <?php
2 /*简单的比较对象和数组是不是为空*/
3
4 #定义空类EmptyClass
5 class EmptyClass{}
6
7 $emptyClass = new EmptyClass(); #实例化空类
8 $stdClass = new stdClass(); #实例化stdClass,一个php的内部保留类;没有属性和方法的空类;
9 $array = array(); #定义空数组
10
11 #第一种方法用empty()函数进行判定.
12 if(empty($emptyClass)){
13 echo "\$emptyClass is empty."; #预期输出
14 }else{
15 echo "\$emptyClass is not empty."; #不是预期的
16 }
17 #输出结果为:$emptyClass is not empty.这不是预期输出,在预期里应该是空类;
18 echo "<br>";
19
20 if(empty($stdClass)){
21 echo "\$stdClass is empty."; #预期输出
22 }else{
23 echo "\$stdClass is not empty."; #不是预期的
24 }
25 #输出结果为:$stdClass is not empty.不是预期的,保留类,空的,但是可以向其中添加属性;
26 echo "<br>";
27
28 if(empty($array)){
29 echo "\$array is empty."; #预期输出
30 }else{
31 echo "\$array is not empty."; #不是预期的
32 }
33 #输出结果为:$array is empty.符合预期;
34 echo "<br>";
35
36 #第二种方法用count()函数来判定一下;
37 echo "EmptyClass Count: " . count($emptyClass); #输出1;
38 echo "<br>";
39 echo "std Class Count: " . count($stdClass); #输出1;
40 echo "<br>";
41 echo "array count: " . count($array); #输出0;
42 echo "<br>";
43
44
45 #第三种方法自定义函数进行判定
46 function getCount($var){
47 $count = 0; #统计次数初始值为0
48 #条件开始,首先要判定是不是数组或者对象;
49 if(is_array($var) || is_object($var)){
50 #开始循环数组或者对象
51 foreach ($var as $key=>$value){
52 $count ++; #计数在每次循环后自增1;
53 }
54 }
55 unset($var); #在内存中是释放变量;
56 return $count; #返回统计次数;
57 }
58 #调用函数进行判定
59 if(getCount($emptyClass) === 0){
60 echo "\$emptyClass is empty."; #预期输出
61 }else{
62 echo "\$emptyClass is not empty."; #不是预期输出
63 }
64 #输出$emptyClass is empty.符合预期;
65 echo "<br>";
66 if(getCount($stdClass) === 0){
67 echo "\$stdClass is empty."; #预期输出
68 }else{
69 echo "\$stdClass is not empty."; #不是预期输出
70 }
71
72 echo "<br>";
73 if(getCount($array) === 0){
74 echo "\$array is empty."; #预期输出
75 }else{
76 echo "\$array is not empty."; #不是预期输出
77 }
78 echo "<br>";
79 ?>
代码没有意义,仅供学习交流。
PHP比较数组、对象是否为空的更多相关文章
- 判断js数组/对象是否为空
/** * 判断js数组/对象是否为空 * isPrototypeOf() 验证一个对象是否存在于另一个对象的原型链上.即判断 Object 是否存在于 $obj 的原型链上.js中一切皆对象,也就是 ...
- JQ 数组动态添值,对象动态添值,判断数组/对象是否为空
1.数组动态添值 首先声明一个空数组:var data = new Array(); 向数组中添值 :data.push('添加的值'); 示例:
- js 中判断变量是数组还是对象,和判断对象是否为空
判断是对象还是数组 var ids={ id:'1',num:'2' } if(Array.isArray(ids) == false) {console.log('不是数组,对象') } else ...
- JavaScript 中有关数组对象的方法
JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象 ...
- php删除多重数组对象属性,重新赋值的方法
php删除多重数组对象属性,重新赋值的方法 实例:sphinx搜索出来的结果,要去掉某个属性值:$cl = new SphinxClient ();$query = $cl->Query ( $ ...
- javascript基础之数组对象
一.定义数组的方法: 定义了一个空数组: var myArray =new Array(); 指定有n个空元素的数组: var myArray=new Array(n); 定义数组并赋值: var m ...
- JavaScript之数组对象
Array类型是ECMAScript中最常用的类型了. 一.声明方式 1.使用Array构造函数 var arr1 = new Array(); 如果预先知道要保存数组的数量, 也可以给构造函数传递该 ...
- Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理
Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...
- Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good
引言 接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的:对于服务端的类来说,如果它想实现某种服务,实现与该服务相 ...
- math对象与数组对象
1.math对象 属性 //PI 圆周率 方法 //random 随机数 var num= Math.random(); 生成0到1的随机数//round 四舍五入var num2 ...
随机推荐
- 《HelloGitHub》第 56 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- Java基础教程——字节流
IO流 水流 特点 连续性 逝者如斯夫,不舍昼夜: 方向性 一江春水向东流.水往低处流.百川东到海,何时复西归?少壮不努力,老大徒伤悲! 源头尽头 唯有源头活水来:覆水难收 Java里的IO也有这样的 ...
- Java基础教程——Object类
Object类 Object类是Java所有类类型的父类(或者说祖先类更合适) <Thinking in Java(Java编程思想)>的第一章名字就叫"everything i ...
- 浅谈代理模式与java中的动态代理
代理模式的定义: 代理模式是一个使用律非常高的模式,定义如下: 为其他对象提供一种代理,以控制对这个对象的访问. 类图: 简单的静态代理: public interface IRunner{ //这是 ...
- Redis分布式锁—Redisson+RLock可重入锁实现篇
前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...
- python初次接触
1.python有什么用或者能做什么? 可以做网站(比如 YouTube.豆瓣),可以做图片处理,可以做科学计算,也可以爬虫,甚至于游戏,学好Python后不用担心没有用武之地,Google就大量的在 ...
- 图像处理术语解释:灰度、色相、饱和度、亮度、明度、阿尔法通道、HSL、HSV、RGBA、ARGB和PRGBA以及Premultiplied Alpha(Alpha预乘)等基础概念详解
☞ ░ 前往老猿Python博文目录 ░ 一.引言 由于老猿以前没接触过图像处理,在阅读moviepy代码时,对类的有些处理方法代码看不懂是什么含义,为此花了4天时间查阅了大量资料,并加以自己的理解和 ...
- 第8.31节 Python中使用__delattr__清除属性数据
一. 引言 在前面几节我们介绍了__ getattribute__方法和__setattr__方法,分别实现了实例属性的查询和修改(含定义即新增),作为Python中数据操作必不可少的三剑客get.s ...
- 第15.26节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QListWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生 ...
- Go微服务实践之增删改查
从此篇文章开始,我们来陆续介绍 go-zero 开发一个项目所需要的组件和开发实践. 首先我们从 model 层开始,来说说go-zero 的API以及封装细节.首先 model 层连接的API集中在 ...