PHP - Return 仅显示文本 "Array"

PHP - Return display just text "Array"

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

 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;
    }

在我看来它看起来不错并且应该 return 多个结果,问题是它只显示带有文本 "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)

因为它是一个数组,所以你需要迭代每一项来打印每一项或者用它做一些事情。

实现此目的的一种方法是使用 foreach 循环。但是 for 循环或 while 循环可以工作。

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

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

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

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

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

您似乎尝试了 echo getSolicData()。您需要使用 foreach 或显示数组行。诸如此类:

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