代码之家  ›  专栏  ›  技术社区  ›  Brook Julias

PHP,_array()是否生成“Undefined property:stdClass::$crit”错误

  •  0
  • Brook Julias  · 技术社区  · 15 年前

    is_array($src2->crit)

    引发错误的行是: if(is_array($src2->crit) && count($src->crit) > 0){

    $src2->crit

    $src2->crit = array();
     $src2->crit[0] = new dataSet();
     $src2->crit[0]->tblName = $tbl2;
     $src2->crit[0]->colName = "ID";
     $src2->crit[0]->val = $elm->editID;
    

    测试时 $src2->暴击 用这个代码。

    print("\$src->crit is a ".$src->crit."<br />");
    print_r($src->crit); print("<br />");
    

    $src2->crit is a Array
    Array ( [0] => dataSet Object ( [tblName] => sExam [colName] => ID [val] => 10 ) )
    

    我没有正确地看到/理解什么?如果 print("\$src2->crit is a ".$src->crit."<br />") 返回它是一个数组,那么为什么是 is_array($src2->$crit) 生成错误?

    3 回复  |  直到 15 年前
        1
  •  0
  •   Artefacto    15 年前

    无法复制:

    <?php
    $src2 = new stdClass();
    $src2->crit = array();
    $src2->crit[0] = new stdClass();
    $src2->crit[0]->tblName = "whatever";
    $src2->crit[0]->colName = "ID";
    $src2->crit[0]->val = "value";
    var_dump(is_array($src2->crit));
    

    gives bool(true) .

        2
  •  0
  •   Lizard    15 年前

    看起来你最大的问题(根据你在问题中发布的信息)是你引用了一个不同的变量名?

    $elm->crit
    $src->crit
    
        3
  •  0
  •   Charles    15 年前

    print("\$src2->crit is a ".$src->crit."<br />")

    is_array($src2->$crit)

    指的是 crit $src2 对象。

    另一种是引用 $crit $暴击 计算为字符串,则该字符串值用作属性名称。

    什么 $暴击 定义为?我敢打赌那不是绳子 'crit' !

    推荐文章