我最近开始使用 cfc 组件将用户信息存储在 Session 变量中。我曾经将它们作为单独的变量存储在 Session 中,例如 Session.UserId、Session.Firstname 或 Session.Lastname。这个新组件很好地将所有内容封装到一个组件中,其中包含我需要的每个值的 get 方法(即 Session.User.getUserId()、Session.User.GetName() 等)。
但是当我对 session 变量进行 cfdump 进行调试时,它会显示对象结构的元数据。我想查看组件的 get 方法返回的值。有什么方法可以使用 cfdump 来输出带有对象元数据的函数值吗?
最佳答案
<cfdump>
不是魔法,它所做的只是输出你给它的值。由于您的 CFC 实例不公开反射(reflect)这些值的任何公共(public)属性,<cfdump>
没有任何方法知道它们是什么。
如果您需要一次提取反射(reflect)您之前 session 范围的所有私有(private)属性,那么您需要创建一个方法来执行此操作,然后 <cfdump>
那个。例如:
public struct function getVariables(){
return variables;
}
如果您要进一步抽象您想要的值,例如variables.sessionStuff
( variables.sessionStuff.userId
、 variables.sessionStuff.name
等),然后编写一个方法 getSessionStuff()
返回 variables.sessionStuff
.
关于coldfusion - cfdump 组件方法值,而不是组件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607436/