php - 为什么在PHP或其他语言中使用动态变量(可变变量)

标签 php performance optimization coding-style php-7

<分区>

我最近才了解到 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 上传用户特定的图像

android - 在 Android 中播放音频太慢

javascript - 使用ajax(纯Javascript)发送数据和文本输入

sql-server - CPU 时间或运行时间 - 这实际上意味着 SQL 查询的性能?

mysql - 使用更大的数据库优化 MySQL 查询

c++ - 编译器会优化和重用变量吗