【问题标题】:PHP Object Variable variables name?PHP 对象变量变量名?
【发布时间】:2012-06-06 17:21:02
【问题描述】:

我有一个从 1 到 10 的循环并在其中打印值

$entity_object->field_question_1 到 10 所以...

$entity_object->field_question_1$entity_object->field_question_2

我想在这个循环中打印这个,我怎样才能得到这个变量?我试着做

$var = "entity_object->field_question_".$i;
print $$var;

但这没有用......

我怎样才能得到这些值?

【问题讨论】:

    标签: php


    【解决方案1】:

    这应该可行:

    $var="field_question_$i";
    $entity_object->$var;
    

    【讨论】:

      【解决方案2】:

      实际上,您需要像这样将变量放在字符串之外,以便这些解决方案起作用: $var="field_question_".$i;

      $entity_object->$var;

      或者

      $entity_object->{"field_question_".$i}
      

      【讨论】:

        【解决方案3】:

        首先,数组更适合你想做的事情。

        你的问题的答案:print $entity_object->{"field_question_$i"};

        【讨论】:

          【解决方案4】:

          升级到 PHP 7 时,我们遇到了如下语句的问题:

          $variable->$node[$i] = true;
          

          这在 PHP 5.4 中运行良好,但在 PHP 7 中导致整个网站崩溃。所以我们将其替换为:

          $variable->{$node[$i]} = true;
          

          解决问题。

          【讨论】:

            【解决方案5】:

            或者您可以在数组和对象之间进行类型转换。

            数组很简单,因为它们组织有序且易于访问。对象是完全不同的,但很多专业人士的。

            像这样设置你的对象:

            $entity_object["field_question_{$i}"] = ''//value;
            

            然后可以将它们类型转换为对象:

            $entity_object = (object)$entity_object;
            

            然后你会像这样引用它们:

            $entity_object->field_question_1 ...;
            

            【讨论】:

              猜你喜欢
              • 2013-11-26
              • 1970-01-01
              • 1970-01-01
              • 2013-10-08
              • 2010-11-25
              • 1970-01-01
              • 2017-08-21
              • 2013-07-26
              • 2012-08-28
              相关资源
              最近更新 更多