PHP将对象转换为数组

Sac*_*dra 3 php arrays zend-framework

当具有私有变量的对象已经在php中转换(强制转换)为数组时,将启动数组元素键

*_

.如何删除数组键开头的"*_"?

例如

class Book {
    private $_name;
    private $_price;
}
Run Code Online (Sandbox Code Playgroud)

铸造后的阵列

array('*_name' => 'abc', '*_price' => '100')
Run Code Online (Sandbox Code Playgroud)

我想要

array('name' => 'abc', 'price' => '100')
Run Code Online (Sandbox Code Playgroud)

Sac*_*dra 9

我是这样做的

class Book {
    private $_name;
    private $_price;

    public function toArray() {
        $vars = get_object_vars ( $this );
        $array = array ();
        foreach ( $vars as $key => $value ) {
            $array [ltrim ( $key, '_' )] = $value;
        }
        return $array;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我想将书籍对象转换为数组时,我调用了toArray()函数

$book->toArray();
Run Code Online (Sandbox Code Playgroud)