[英]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.