旗下导航:搜·么
当前位置:网站首页 > PHP问题 > 正文

php对象和数组区分【php问题】

作者:搜搜PHP网发布时间:2019-11-27分类:PHP问题浏览:119


导读:php中对象和数组的区分对象不仅有属性,另有要领;,对象能够封装对这些数据的操纵,而数组是办不到的。(引荐进修:PHP视频教程)因而:假如是纯真存数据,就用数组,但...
php中对象和数组的区分

对象不仅有属性,另有要领;,对象能够封装对这些数据的操纵,而数组是办不到的。(引荐进修:PHP视频教程)

因而:假如是纯真存数据,就用数组,但假如你要定义对这些数据的操纵,更发起运用对象

举例:

假如你想在操纵的数据里加个通用的要领,比方返回值是加密的,或许别的等等功用,这时刻能够斟酌写个类,返回数据的时刻运用对象的响应要领即可获得想要的数据。

假如从框架设想、扩大的角度来讲,照样能用对象就用对象,轻易扩大保护。比方你代码里随处用的都是数组,有一天接口返回的数据变了,你要修正许多。 假如用对象的话修正的工作量会小一些。

PHP数组是用hash table来完成的,它的增删基础能够在O(1)内完成。

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

PHP数组的foreach遍历是按插进去前后遍历,最快的PHP数组遍历。

数组是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图文教程栏目举行进修!

以上就是php对象和数组区分的细致内容,更多请关注ki4网别的相干文章!

标签:php