使用php 5.1.6在行中的变量列名称

时间:2017-07-05 17:29:26

标签: php variables syntax

我的语法有问题。我正在尝试使用php变量作为我当前正在阅读的行的列名。下面是我的代码片段。 文件夹的第一个回声正确显示单词"组织" (我想要的列名,最后一个回显正确显示$ row_ridoh [' organization']的内容为1,但中间带有变量编码的回声不起作用。请指教。

while($row_ridoh = mysql_fetch_array($ridoh)) {
  echo('folder: ' . $folder);
  echo('heres the real PROBLEM: ' . $row_ridoh[${$folder}]);
  echo('</br>row organizations: ' . $row_ridoh['organizations']);
  if ($row_ridoh["{$folder}"] == '1') {
    echo('keyword in if: ' . $folder);
  }
}

我对代码进行了建议的更改:

     while($row_ridoh = mysql_fetch_array($ridoh)){
      echo('folder: ' . $folder);
      echo('here the real PROBLEM: ' .  $row_ridoh[$folder]);
        echo('</br>row organizations: ' . $row_ridoh['organizations']);
        if ($row_ridoh[$folder] == '1')
        {  echo('keyword in if: ' . $folder); }
      }

真实问题的回声&#34;仍然没有显示。 这是执行时的输出:

文件夹:组织

注意:未定义的索引:第30行的/export/webs/inside.health/includes/sql/checkuser.php中的组织

这里是真正的问题:

行组织:1

再次 - 感谢您的帮助。我更新了代码以包含var_dump。它列在下面:

array(26){[0] =&gt;字符串(1)&#34; 1&#34; [&#34; ID&#34;] =&GT;字符串(1)&#34; 1&#34; [1] =&GT; string(5)&#34; admin&#34; [&#34;用户名&#34;] =&GT; string(5)&#34; admin&#34; [2] =&GT; string(8)&#34; r1health&#34; [&#34;密码&#34;] =&GT; string(8)&#34; r1health&#34; [3] =&GT; string(19)&#34; 2017-06-29 10:48:34&#34; [&#34;改性&#34;] =&GT; string(19)&#34; 2017-06-29 10:48:34&#34; [4] =&GT;字符串(1)&#34; 1&#34; [&#34;成绩&#34;] =&GT;字符串(1)&#34; 1&#34; [5] =&GT;字符串(1)&#34; 1&#34; [&#34;动作&#34;] =&GT;字符串(1)&#34; 1&#34; [6] =&GT;字符串(1)&#34; 1&#34; [&#34;投诉&#34;] =&GT;字符串(1)&#34; 1&#34; [7] =&GT;字符串(1)&#34; 1&#34; [&#34;疾病&#34;] =&GT;字符串(1)&#34; 1&#34; [8] =&GT;字符串(1)&#34; 1&#34; [&#34;实体&#34;] =&GT;字符串(1)&#34; 1&#34; [9] =&GT;字符串(1)&#34; 1&#34; [&#34;里程碑&#34;] =&GT;字符串(1)&#34; 1&#34; [10] =&GT;字符串(1)&#34; 1&#34; [&#34;组织&#34;] =&GT;字符串(1)&#34; 1&#34; [11] =&GT;字符串(1)&#34; 1&#34; [&#34;出版物&#34;] =&GT;字符串(1)&#34; 1&#34; [12] =&GT;字符串(1)&#34; 1&#34; [&#34;试样&#34;] =&GT;字符串(1)&#34; 1&#34; }

确实将列名正确标记为&#39;组织&#39;。 $ folder变量在上面的代码中设置。如echo输出&#34;文件夹中显示的那样:组织&#34;。

期待其他建议尝试。你认为它与我的php 5.1.6版本有什么关系吗?

1 个答案:

答案 0 :(得分:1)

此语法${$folder}尝试访问与$folder中存储的字符串同名的变量。根据我收集的内容,您只需要存储在$folder中的字符串。因此,请将$row_ridoh[${$folder}]更改为$row_ridoh[$folder]

编辑:

我也注意到了这一点:if ($row_ridoh["{$folder}"] == '1') {。这与您打印出来的内容不同,也是错误的。这应该从$row_ridoh["{$folder}"]更改为$row_ridoh[$folder]