<分区>
我最近才了解到 PHP 中动态变量的概念。对我来说,在程序中使用动态变量似乎会使阅读/理解变得困难。
任何人都可以向我解释好处和/或分享一个真实简单的真实世界示例,说明何时可能需要 PHP 中的动态变量?
如果您想知道动态变量是什么以及它们如何工作,请查看 this question
<分区>
我最近才了解到 PHP 中动态变量的概念。对我来说,在程序中使用动态变量似乎会使阅读/理解变得困难。
任何人都可以向我解释好处和/或分享一个真实简单的真实世界示例,说明何时可能需要 PHP 中的动态变量?
如果您想知道动态变量是什么以及它们如何工作,请查看 this question
最佳答案
我曾投票关闭这个问题(投票后撤回),因为它是主观的,但经过反射(reflection),我认为我可以给出一个客观的答案。
静态变量名是一个字符序列,代表一个 token ,底层引擎将其用作标签来标识变量所代表的值(非常非常外行的描述)。
“字符序列”是一个字符串。 字符串 是表示字符串的表达式。因此,从那里可以推断,任何表示字符串的表达式都应该足以表示引用变量的标记。该表达式本身可以分配给一个变量,并从那里获得动态变量名。
但这不是你问的。你问:为什么?
语言的实现者不能回答这样的问题。他们的工作是通过他们的语言提供统一且可预测的编程接口(interface)。 统一 能够通过表达式表示字符序列,而表达式又可以由变量表示。工作完成。
主观上,我可能会看到某些数据是从外部源导入的,甚至数据的架构也是动态的。人们可能想以某种通用的对象方式来表示它,由此导致对象的属性名称也可能是动态的。这是否是解决手头问题的好方法完全是主观的,取决于开发人员及其同行在代码审查期间的判断。
另一个例子可能是您继承了一些粗制滥造的意大利面条式代码,其中“需要”并且使用动态命名 - 无论出于何种原因 - 可能是一个好方法。
PHP 的负担止于提供编写代码的机制;它并没有说明所述代码的设计质量。这就是代码审查的目的。
关于php - 为什么在PHP或其他语言中使用动态变量(可变变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45866673/
相关文章:
performance - 如何在 Functional Automation Suite 运行时测量浏览器上的应用程序性能?
scala - 为什么 scalac 不优化简单的 `for` 构造中的开销?
php - 在不破坏 Zend Framework 中的默认行为的情况下自动连接表
php - INSERT mysql_num_rows 作为变量
php - 如何使用 mongodb 和 php 上传用户特定的图像
javascript - 使用ajax(纯Javascript)发送数据和文本输入