Home  >  Article  >  Backend Development  >  What is the difference between php objects and arrays

What is the difference between php objects and arrays

藏色散人
藏色散人Original
2019-08-08 11:18:504040browse

What is the difference between php objects and arrays

What is the difference between php objects and arrays?

The difference between objects and arrays in php

Objects not only have properties, but also methods; objects can encapsulate operations on these data, while arrays are less than.

So: If you are simply storing data, use arrays, but if you want to define operations on these data, it is more recommended to use objects!

Recommended: [PHP Tutorial]

Example:

If you want to add a common method to the data being manipulated, for example, the return value is encrypted , or other functions, you can consider writing a class at this time, and when returning data, use the corresponding method of the object to get the desired data.

From the perspective of framework design and expansion, if you can still use objects, use objects to facilitate expansion and maintenance. For example, if arrays are used everywhere in your code, one day the data returned by the interface changes, and you have to make a lot of modifications. If you use objects, the modification workload will be smaller.

PHP arrays are implemented using hash tables, and their additions and deletions can basically be completed in O(1).

For traversal of PHP arrays traverses by key size, which is slower than foreach.

The foreach traversal of PHP arrays is traversed in order of insertion, which is the fastest PHP array traversal.

The underlying structure of the array object

What is the difference between php objects and arrays

#Conversion of the array object

/**
 * 数组 转 对象
 *
 * @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;
}

The above is the detailed content of What is the difference between php objects and arrays. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:What does php mean?Next article:What does php mean?