PHP - 返回仅显示文本“数组”


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;
    }
在我看来,它

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

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

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

执行此操作的一种方法是使用 foreach 循环。但是 for 循环或 while 循环可以工作。

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

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

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

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

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

看起来你尝试回显 getSolicData()。您需要对数组的每个或显示行使用。喜欢:

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