【问题标题】:PHP - Return display just text "Array"PHP - 返回仅显示文本“数组”
【发布时间】:2015-01-19 10:17:33
【问题描述】:

我有一个显示数据库结果的函数,它看起来像:

 public function getSolicData() {
        $tempArray = $this->solicStringConvert();
        foreach ($tempArray as $key => $solic){
            $success = false;
            try{
                $con = new PDO( DB_HOST, DB_USER, DB_PASS );
                $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
                $sql = "SELECT * FROM solic_code WHERE manufacturer = :manufacturer_code AND main_type = :main_type AND option_code = :option_code";
                $stmt_solic = $con->prepare( $sql );
                $stmt_solic->bindValue( "manufacturer_code", "06", PDO::PARAM_STR );
                $stmt_solic->bindValue( "main_type", "50", PDO::PARAM_STR );
                $stmt_solic->bindValue( "option_code", $tempArray[$key], PDO::PARAM_STR );
                $stmt_solic->execute();
                $i= 0;
                while ($row = $stmt_solic->fetch()){
                    $this->values[] = $row['description'];                      
                }
            }catch(PDOExeption $e){
                echo $e->getMessage();
                echo $con->errorInfo();
            }

        }
        var_dump($this->values);
        return $this->values;
    }

在我看来它看起来不错并且应该返回多个结果,问题是它只显示带有文本 "Array" 的空白行,但是如果我尝试在它之前编写 var_dump,它的结果是:

array(17) { [0]=> string(12) "2-DVÉŘOVÝ" [1]=> string(20) "STŘEŠNÍ OKNO MECH" [2]=> string(23) "TÓNOVANÁ SKLA ZELENÁ" [3]=> string(20) "VNĚ-ZRCÁTKA NASTAV" [4]=> string(22) "BEZ ČERVENÉ OZD-LIŠ" [5]=> string(20) "REGUL SKLONU SVĚTEL" [6]=> string(13) "POTAHY LÁTKA" [7]=> string(18) "SEDADLO L V-NASTAV" [8]=> string(22) "ČALOUN PŘÍSTR-DESKY" [9]=> string(14) "1,8 L 66KW RP" [10]=> string(17) "PŘEVOD 4+E-RYCHL" [11]=> string(14) "SERVOŘÍZENÍ" [12]=> string(17) "PNEU 185/55 VR 15" [13]=> string(18) "DISKY 6 J X 15 ALU" [14]=> string(12) "OD SRPNA

所以我完全不明白这一点。说真的,我不知道如何调试这个。有人可以帮助我吗? (在我的情况下,我不能使用 echo)

【问题讨论】:

  • 这是因为您无法在不指定键的情况下回显数组尝试像这样回显它:echo $yourArrayVariable[0]
  • 数组没问题。您不能回显或打印数组。您必须使用 print_r 或使用 foreach 循环来打印每个项目。

标签: php arrays pdo


【解决方案1】:

由于它是一个数组,因此您需要迭代每个项目以打印每个项目或对其进行处理。

这样做的一种方法是使用 foreach 循环。但是 for 循环或 while 循环可以工作。

foreach($this->values as $value) {
    print $value;
}

或者,您可以使用索引访问特定值,例如print $this->value[0] 会给你第一个项目。

您不能简单地打印数组或按原样回显它。

您也可以使用print_r。这完全取决于你想做什么。

【讨论】:

  • 或使用print_rvar_dump
【解决方案2】:

使用 foreach 循环或 for 循环并迭代以获取值

【讨论】:

  • 为什么不用while或者做while循环呢?非常简单的答案。
【解决方案3】:

看起来您尝试使用 echo getSolicData()。您需要使用 foreach 或显示数组行。某样东西:

$res = getSolicData();
echo $res[0];
// or
foreach($res as $row) {
echo $row . '<br>';
}

【讨论】:

  • 我不能使用echo,因为如果我使用echo,它会在我需要编写它的地方失败。
猜你喜欢
  • 2018-03-10
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多