php对象和数组有什么区别?

php中对象和数组的区别

对象不仅有属性,还有方法;对象可以封装对这些数据的操作,而数组是办不到的。

因此:如果是单纯存数据,就用数组,但如果你要定义对这些数据的操作,更建议使用对象!

推荐:【PHP教程】

举例:

如果你想在操作的数据里加个通用的方法,比如返回值是加密的,或者其它等等功能,这时候可以考虑写个类,返回数据的时候使用对象的相应方法即可得到想要的数据。

如果从框架设计、扩展的角度来说,还是能用对象就用对象,方便扩展维护。比如你代码里到处用的都是数组,有一天接口返回的数据变了,你要修改很多。 如果用对象的话修改的工作量会小一些。

PHP数组是用hash table来实现的,它的增删基本可以在O(1)内完成。

PHP数组的for遍历是按key大小遍历,慢于foreach。

PHP数组的foreach遍历是按插入先后遍历,最快的PHP数组遍历。

数组对象的底层结构

数组对象的转换/**

* 数组 转 对象

*

* @param array $arr 数组

* @return object

*/

function array_to_object($arr) {

if (gettype($arr) != 'array') {

return;

}

foreach ($arr as $k => $v) {

if (gettype($v) == 'array' || getType($v) == 'object') {

$arr[$k] = (object)array_to_object($v);

}

}

return (object)$arr;

}

/**

* 对象 转 数组

*

* @param object $obj 对象

* @return array

*/

function object_to_array($obj) {

$obj = (array)$obj;

foreach ($obj as $k => $v) {

if (gettype($v) == 'resource') {

return;

}

if (gettype($v) == 'object' || gettype($v) == 'array') {

$obj[$k] = (array)object_to_array($v);

}

}

return $obj;

}

php+对象和数组装备_php对象和数组有什么区别相关推荐

  1. php 输出数组内容_php如何输出数组

    和数组的创建一样,数组的输出显示也有三种方法. 一.for循环 (推荐学习:PHP视频教程)<?php $ms_office = array( 'word', 'excel', 'outlook ...

  2. php 数组美化_PHP格式化输出数组,一目了然

    在PHP输出数组的时候,我们通常使用print_r(),但是输出没有换行,看起来很费劲,于是乎,我们自己定义一个函数来完成: [php] function dump($vars, $label = & ...

  3. python二维数组去重_PHP二维数组去重

    $array = array( '1'=>array('title'=>'1111′,'date'=>'2222'), '2'=>array('title'=>'1111 ...

  4. mysql 二维数组下标_php二维数组指定下标排序

    /* * Effect 排序 * author YangYunHao * email 1126420614@qq.com * time 2018-11-26 11:59:38 * parameter ...

  5. php多维数组合并_php多维数组合并

    * Arr.php namespace app\common\utils; class Arr { /** * 多维数组合并 例如关联数组配置项默认值处理 * @param $array1 * @pa ...

  6. php删除二维数组元素_php二维数组如何删除元素

    php二维数组删除元素的方法:首先获取相关二维数组数据:然后通过foreach语句循环遍历该数组,并使用"unset"函数删除指定元素:最后用"print_r" ...

  7. php 字符串数组转数组对象_php怎么将数组转成对象?

    php将数组转成对象的方法:1.使用数据类型转换,在数组变量前添加"(Object)"来将数组转成对象.2.先使用json_encode()函数将数组转换为json字符串:然后使用 ...

  8. php一个数组赋值给对象,php数组与对象相互转换方法

    php教程数组与对象相互转换方法 function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=> ...

  9. 小程序云开发更新数组的指定对象的值

    云开发,在小程序实现 代码说明': 在这里,数据集合 groupList 中的 userList 是一个用户列表数组,我要更新数组中,openid 等于我的openid 的在线状态为 true. 先查 ...

  10. 数组、字符串对象、Math对象

    数组的介绍 数组介绍 概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为"数组".数组就是一列数据的有序排列的集合. 定义形式: var arr1 = new ...

最新文章

  1. Linux内核分析--理解进程调度时机、跟踪分析进程调度和进程切换的过程
  2. php7 变量,变量在PHP7内部的实现(一)
  3. SGU 269. Rooks(DP)
  4. SAP 调用外部系统
  5. 研招网【2022考研党需提前做好的8点准备】
  6. connect跨进程 qt_编写 Qt 跨线程异步调用器
  7. 使用dotMemory Unit发现并修复内存问题
  8. workbench拓扑优化教程_ANSYS经典案例在Workbench中实现 | 基于网格重划分的金属成型仿真分析...
  9. 日常琐事的记录,每周六晚做一次总结整理
  10. Perl语言及安装运行环境
  11. 基于JavaSwing开发中国象棋对战游戏+实验报告 课程设计 大作业
  12. 111-unsplash-for-chrome-2021-07-22
  13. 【求职经历】四川移动暑期实习面试经历
  14. 深圳大学丽湖校区iPad连校园网WiFi
  15. 使用TimerOne库
  16. 【教程】Ubuntu20.04 + VirtualBox 各种软件环境安装
  17. word中英文间距太大了,勾选允许中英文换行后,英文单词被拆开
  18. Unity通过鼠标点击生成网格模型
  19. 如何在感觉怕黑怕鬼时壮胆
  20. 无人驾驶工业车辆企业「未来机器人」完成数亿元融资

热门文章

  1. 【旗帜识别】基于matlab GUI旗帜识别【含Matlab源码 157期】
  2. 【路径规划】基于matlab遗传算法求解多式联运运输问题【含Matlab源码 877期】
  3. 【元胞自动机】基于matlab元胞自动机模拟小区车流量【含Matlab源码 358期】
  4. 【协同任务】基于matlab蚁群算法多无人机攻击调度【含Matlab源码 034期】
  5. 通话时自动中断音乐播放_您知道用户在何处以及为何中断通话吗?
  6. win10远程电脑连接
  7. scala连接mongodb_MongoDB 的用户配置与基于Scala的使用
  8. stm32产生100k时钟信号_stm32定时器时钟源时钟选择
  9. centos7 更新php版本,Centos7升级php版本到php7实例分享
  10. 弱网环境搭建方案选型