[英]Convert an array into string or object
美好的一天,我試圖將數組“ $ list”轉換為字符串或對象。 我使用以下方法:
<?php
include "medclass.php";
session_start();
if (isset($_SESSION['mail']))
{
$list = $_SESSION['basket'];
}
else
header("location: clientsigninpage.php?msg= Log-in First");
$obj = new med_class;
$obj->connectdb();
$val = implode(";",$list); //implode method
$val = (object) $list; //object method
$val = serialize($list); //serialize method
$result = $obj->searchMed($val);
while ($row = $result->fetchObject())
{
echo $row->MedPrice;
}
?>
使用“(對象)”,會給我以下錯誤:“類stdClass的對象無法轉換為字符串”,使用“爆破”:“數組到字符串的轉換”,使用“ serialize()”,它不會打印任何內容。
我傳遞值的函數是:
function searchMed($v1)
{
$sql = "select * from storepreview where MedName = '$v1'";
$ret = $this->con->query($sql);
return $ret;
}
我通過查看以下鏈接使用了這些方法:( http://www.dyn-web.com/php/arrays/convert.php ); ( 將數組轉換為字符串 ); ( 如何在PHP中將數組轉換為對象? )
通過運行以下代碼行,在使用implode
命令時,我設法重現了“數組到字符串轉換”錯誤:
implode(";", [[]]); // PHP Notice: Array to string conversion in php shell code on line 1
要將嵌套數組轉換為字符串,我發現一個foreach
循環有效:
$nestedArray = ['outerKeyOne' => ['innerKeyOne' => 'valueOne'], 'outerKeyTwo' => ['innerKeyTwo' => 'valueTwo']];
$arrayOfStrings = [];
foreach ($nestedArray as $key => $value) {
$arrayOfStrings[] = implode(",", $value);
}
implode(";", $arrayOfStrings); // string(17) "valueOne;valueTwo"
與第二行有關的第二個錯誤$val = (object) $list;
是因為嘗試將對象嵌入$sql
字符串。 似乎對象不是您想要的,除非它是已實現__toString()
方法的對象。
我希望這會有所幫助。 使用var_dump
或類似的東西將提供更多的調試輸出,以更好地診斷問題以及上述錯誤消息。 這就是我想到的上述代碼的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.