是的,我有这个对象,属性代表db表列作为属性,但它们都是大写的…如何将对象的所有属性更改为小写,而不将对象转换为数组后将属性从大写转换为小写?我想我可以用array_change_key_case
但这个在我需要对象时返回array,而不是array也一样get_class_vars
和get_object_vars
如何?
你最好的选择(也是第一选择)应该是拦截对象的创建,并使属性以小写开始;这将是最干净和最高效的。
如果这是不可能的任何原因,我们正在谈论一个哑对象(stdClass
类型),那么最简单的是通过一个中间数组,然后进入一个新的对象:
$temp = (array)$old;
$new = (object)array_combine(array_map('strtolower', array_keys($temp)), $temp);