在对象层次结构中调试 PHP toString()


Debugging PHP toString() in object hierarchy

我有一个表单工厂类,它基于数组中的数据构建表单。

每个元素也表示为一个类。

每个表单元素都有一个 toString 实现,该实现会吐出该类元素的 html,表单本身有一个 toString 实现,只需将其元素数组折叠成字符串即可。

我的问题是,当出现错误时,我只是得到"toString 无法通过异常",当有问题的表单元素有两个父类时,这真的没有多大帮助。ConcreteFormElement>> OptionFormElement>> Select ( 一个下拉列表 )。错误可能介于两者之间。

这是一个WordPress主题,我完全使用OOP练习来做,主要作为一种学习练习。

对我来说,使用 toString 似乎是很自然的,但调试print_f让我失望。我做错了什么吗?我应该忘记 toString 吗?还是有没有办法更容易调试?

附言这个问题是不是太模糊了?

基本上,在每个 __toString() 中,您需要将代码包装在 try catch 中,在 catch 语句中,您可以"返回表示异常的字符串"。这样,父 toString 调用就不会失败...然后,您可以根据需要操作字符串。