Php 如何将所有对象属性(字段名)小写并保持为对象而不是数组

Php 如何将所有对象属性(字段名)小写并保持为对象而不是数组,php,Php,是的,我有这个对象,属性将db表列表示为属性,但它们都是大写的…如何将对象的所有属性更改为小写,而不在将属性从大写转换为小写后将对象转换为数组?。。 我想我可以用 array\u change\u key\u case 但当我需要对象而不是数组时,它会返回数组 同 获取类变量和获取对象变量 那么怎么做呢?您的最佳选择(也是第一选择)应该是拦截对象创建,并首先将属性的大小写设置为小写;那将是最干净、最有效的 如果由于任何原因这是不可能的,并且我们讨论的是一个哑对象(类型为stdClass),那么最

是的,我有这个对象,属性将db表列表示为属性,但它们都是大写的…如何将对象的所有属性更改为小写,而不在将属性从大写转换为小写后将对象转换为数组?。。 我想我可以用
array\u change\u key\u case
但当我需要对象而不是数组时,它会返回数组 同
获取类变量
获取对象变量

那么怎么做呢?

您的最佳选择(也是第一选择)应该是拦截对象创建,并首先将属性的大小写设置为小写;那将是最干净、最有效的

如果由于任何原因这是不可能的,并且我们讨论的是一个哑对象(类型为
stdClass
),那么最简单的方法是通过一个中间数组,然后进入一个新对象:

$temp = (array)$old;
$new = (object)array_combine(array_map('strtolower', array_keys($temp)), $temp);
如果对象是另一种类型,那么实际上没有办法按照您的建议进行操作,您应该后退一步,从早期阶段重新考虑应用程序。

您的最佳选择(也是第一选择)应该是拦截对象创建,并从较低的属性开始;那将是最干净、最有效的

如果由于任何原因这是不可能的,并且我们讨论的是一个哑对象(类型为
stdClass
),那么最简单的方法是通过一个中间数组,然后进入一个新对象:

$temp = (array)$old;
$new = (object)array_combine(array_map('strtolower', array_keys($temp)), $temp);

如果对象是另一种类型的,则实际上无法按照您的建议执行操作,您应该后退一步,从早期阶段重新考虑应用程序。

如果我们知道您使用的技术,则更容易向您提供适当的建议,例如,什么数据库?什么是中间层?您是想在应用层还是客户端上重命名它,如果是的话,您使用的是什么语言?如果我们知道您使用的技术(例如,什么数据库),那么给您提供适当的建议会更容易?什么是中间层?您正在尝试在应用层或客户机上重命名此对象,如果是,您使用的是什么语言?该对象属于另一种类型..当我尝试使用数组函数时..它变成和stdClass@sasori:如果对象为其他类型,则无法“机械地”解决您的问题,因此,更改属性的大小写不是您应该考虑的。该对象是另一种类型..当我尝试使用数组函数时..它变成和stdClass@sasori:如果对象是另一种类型,则您的问题无法“机械地”解决,因此您不应该考虑更改属性的大小写。