问题标签 [variable-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
986 浏览

php - PHP $_GET/$_POST 通过变量变量

我正在尝试使用变量变量动态访问 $_GET 和 $_POST 数组等。我尝试这样做的原因是,我可以在多个数组上执行类似的操作,而无需为每个数组声明特定的迭代。我有理由确定这是可能的,因为 PHP 的文档说它能够使用变量变量来动态访问数组,但是我无法让它工作。一个简单的演示是当我尝试验证某个属性是否已设置时。

当我运行上面的脚本时,我总是得到空值,但是当我静态地寻找所需的属性时,手动使用 $_GET 或 $_POST,我得到了所需的结果。我进行了三次检查$this->_array$property他们返回了正确的字符串值。这些阵列是否无法用于此类访问,还是我做错了什么?

0 投票
4 回答
130 浏览

php - 变量变量+字段中的对象

我正在尝试对可变变量做一些事情,但我遇到了一个对象问题。想象一下这个类设置:

现在每个人都知道这段代码有效:

有没有可能我可以做这样的事情?:

注意:任何不使用 eval 功能的选项?

0 投票
2 回答
268 浏览

php - 使用变量变量将数据插入静态变量时出现PHP错误

我不太擅长这个,所以我敢肯定这是一个愚蠢的问题。

我有一堂课:

我从另一个类中调用它以进行调试(惊喜)。

来自 error.log 的 PHP 错误消息:

PHP 致命错误:无法使用 [] 读取第 1248 行的 /var/www/lib/lib.php

它指的是调试类中的上述指定行。

编辑:

我想要做的是使用变量变量(因此发布标题)来确定要向哪个静态数组添加数据。

即如果 $type == 'messages',那么 $$type == $messages。

所以我想要 self::$$type[] == self::$messages[]

或者如果 $type == 'errors',那么 $$type == $errors 和 self::$$type[] == self::$errors[]

0 投票
2 回答
100 浏览

php - 变量变量,我的数组的关键

我在这里找到了一个示例,它显示了这样的示例:

是否可以修改它以像这样工作:

$row 数组来自 mysql 查询。

0 投票
4 回答
1808 浏览

php - 解析字符串中的变量

我在*.properties文件中存储了一些字符串。一个字符串的例子是:

sendFrom=从 {$oEmails->agentName}向 {$oEmails->customerCount} 人发送电子邮件。

我的函数从中获取值sendingFrom,然后在页面上输出该字符串,但是它不会自动解析其中的{$oEmails->agentName}内容。有没有办法让我在不手动解析的情况下让 PHP 将变量从字符串转换为应有的值?

0 投票
2 回答
5688 浏览

php - 获取对数组元素的引用,其中数组可以作为 $obj->$propName 访问

假设我们有这段代码(简化示例):

在这一点上,我想编写一个表达式,计算出对数组内值的引用。

是否有可能做到这一点?如果是这样,怎么做?

将“完成工作”但不是我正在寻找的答案是:

但是为什么要把它写成两个语句呢?好吧,因为这不起作用:

当然&$foo->items[0]是另一个不可接受的解决方案,因为它修复了属性名称。

如果有人想知道奇怪的要求:我在一个循环中执行此操作,其中$foo它本身是对图中某个节点的引用。任何涉及的解决方案$temp都需要unset($temp)事后进行,以便$temp下一次迭代的设置不会完全弄乱图形;如果您对引用不是非常小心,则可能会忽略此unset要求,因此我想知道是否有一种方法可以编写此代码,从而减少引入错误的可能性。

0 投票
1 回答
130 浏览

php - PHP中来自必需/包含文件的变量变量

我正在编写一个 MVC 框架(为了学习和发现,而不是实际打算使用它),我遇到了一个小问题。

我有一个config.php文件:

我通过boot类中的静态方法加载这些:

然后像这样加载路线:

捕获异常:

现在,如果我config.php像这样制作文件,它工作正常

并像这样更改方法中的两行:

我也尝试过使用$$type而不是${$type}同样的问题。

有什么我忽略的吗?

0 投票
2 回答
2805 浏览

php - 使用带索引的数组值作为变量变量

标题可能有点混乱。这是我的问题:

我知道你可以在另一个变量中保存一个变量名,然后读取第一个变量的内容。这就是我的意思:

那将打印:“你好”。现在,我遇到了一个问题:

这给了我一个 PHP 错误(它说 $somearray['name'] 是一个未定义的变量)。你能告诉我这是否可能并且我做错了什么吗?或者如果这显然是不可能的,你能给我另一个解决方案来做类似的事情吗?

提前致谢。

0 投票
1 回答
805 浏览

python - 没有eval的Python变量变量?

有没有办法在 python 中使用变量字符串访问变量?例如,我想要一种比使用eval以下更简洁的方法:

0 投票
2 回答
2241 浏览

php - 变量变量和超全局变量

我正在将一个巨大的 PHP 软件从 PHP4 过渡到 PHP5,在我面临的许多(许多)问题中,迄今为止最大的一个似乎是以前的程序员刚刚对 register_globals 功能进行了宴会,不时抛出一些变量不指定来源,并无耻地将警告和通知隐藏在地毯下。

我试图通过创建一个迭代数组(作为参数传递)并通过“变量变量”功能创建全局变量的函数来解决这个问题,然后在每个页面中调用它来获取$_POST,$_GET$_SESSION. 这是代码:

这个函数的问题是条件isset($$key)永远不会为真,因此括号内的代码总是被执行并覆盖之前的声明。

这种行为有什么解释吗?我阅读了 PHP 文档,其中指出

请注意,变量变量不能在函数或类方法中与 PHP 的超全局数组一起使用。

但我不明白这是否与我的问题有关(说实话,我也不明白这意味着什么,我找不到任何例子)。

PS:请不要告诉我使用全局变量和/或变量变量是不好的编程,我自己对此非常了解,但另一种选择是修改大约 2.700 个文件,每行有一千行代码每行,我是这里唯一的程序员......但如果你知道一个更好的解决方案来摆脱所有那些“未定义的变量”警告,你可以让我开心。

PPS:对我的英语也有耐心^_^