簡體   English   中英

注意:php中的數組轉換為字符串

[英]notice: array to string conversion in php

<?php       
 $player[] = array();
    $team_id = $_SESSION['tid'];

    $team_pids = $con->prepare("SELECT p_id FROM players_to_team WHERE t_id = ?");

    $team_pids->bindParam(1,$team_id);

    $team_pids->execute();

    while($info = $team_pids->fetch(PDO::FETCH_ASSOC))
    {
            $player[] = $info['p_id'];
            echo $info['p_id'];
    }
    $pl_1 = $player[0];
    .
        .
        .
    $pl_10 = $player[9];

    echo $player[0]; //notice here
    echo $pl_1;      //notice here
?>
<table>

$query = $con->prepare("SELECT role,name,value FROM players WHERE p_id = '".$pl_1."'");
// notice here
               $query->execute();

               while($result = $query->fetch(PDO::FETCH_ASSOC))
               {
                     echo "<tr>";  
                     echo "<td>".$result['role']."</td>";
                     echo "<td>".$result['name']."</td>";
                     echo "<td>".$result['value']."</td>";
            }
?>
</tr>
</table>

當我回顯$ info數組它工作正常,但當我回顯$ player數組或$ pl_1變量或$結果數組值注意出現...數組到字符串轉換和o / p不顯示。 為什么?

嘗試替換$player[] = array(); by $player = array(); 在開頭(第2行)。

這是因為你在這個變量的索引0處聲明了一個數組,由於[] ,它被告知是一個數組。 因此,您嘗試在數組中放置一個數組,使其成為多維數組。

你不能簡單地echo一個數組。 echo只能輸出字符串 echo 'foo'很簡單,它輸出一個字符串。 什么是echo應該在的情況下,做的正是echo array('foo' => 'bar') 為了讓echo在這里輸出任何東西,PHP會將array('foo' => 'bar')轉換為字符串,該字符串始終是字符串"Array" 而且因為PHP知道這可能不是你想要的,它會通知你。

問題是你正在嘗試將數組視為字符串。 修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM