簡體   English   中英

無法存儲在多維會話數組中

[英]cannot store in multidimensional session array

如果我將字符串保存在$ _SESSION ['breadcrumb'] ['category']中,則會成功保存該字符串,但是如果我嘗試將同一字符串保存在$ _SESSION ['breadcrumb'] ['category'] ['shiv' ]它引發以下錯誤

警告:第13行的E:\\ wamp \\ www \\ sugumar \\ mysuite \\ ajaxjobsearch.php中的非法字符串偏移“ shiv”

這正在工作

 $_SESSION['breadcrumb']['category']="<a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>" ;//works fine

這不起作用..

$_SESSION['breadcrumb']['category']['shiv'] ="<a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>" ; //error

我要保存$ id而不是shiv

$_SESSION['breadcrumb']['category'][$id] ="<a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>" ;

因為您的深層category值首先是一個字符串,所以當您嘗試使用[anything]訪問它時,它將嘗試訪問該字符串的offset 這是一個例子:

$_SESSION['breadcrumb']['category']='<a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>';
echo $_SESSION['breadcrumb']['category'][0];

這將輸出<因為這是偏移量為0的字符(第一個字符)。

真相是shiv不是合法的補償,因此php會發出警告,然后拼命嘗試執行您要求的操作...它將shiv轉換為0並替換character<的第一個字符為shiv值的第一個字符< (無明顯變化)


當偏移量是有效數字時,可以使用它替換字符串中的字符:

$_SESSION['breadcrumb']['category']='<a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>';//works fine
$_SESSION['breadcrumb']['category'][0]='!';
echo $_SESSION['breadcrumb']['category'];

輸出: !a href={$sitepath}/jobs?removefromsearch&name=category&id={$id}>$value</a>


那應該足以解釋該錯誤。

正如其他人所說,這僅僅是將圓釘推入方孔中的問題。 要解決此問題,只需在您發布的第一行代碼中的['category']之后聲明一個鍵,以使category是子數組的鍵。

暫無
暫無

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

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