我有一个PHP代码。我只是想尝试定义和获取数组。以下是代码。
<?php
$query = 'summer';
$query['jink'] = array( 1,4,5,6 );
var_dump($query);
var_dump($query['jink']);
?>
var_dump返回:
string 'Aummer' (length=6)
string 'A' (length=6)
输出不符合预期。它应该给出(1,4,5,6)
的东西答案 0 :(得分:3)
我修正了您的错误以显示问题:
$query = 'summer';
$query['jink'] = array( 1,4,5,6 );
$query
是一个字符串&#34; 夏天&#34;所以['jink']
,不是有效的字符串偏移量被转换为0并且它访问&#34; summer &#34;的第一个字符。此外,array( 1,4,5,6 )
不是字符串,而是Array
和&#34; A &#34;从Array
分配到&#34; 夏天&#34;的偏移0屈服&#34; Aummer &#34;:
var_dump($query);
现在再次获得字符串偏移量0,即&#34; A &#34;来自&#34; Aummer &#34;:
var_dump($query['jink']);
如果您使用错误报告:
error_reporting(E_ALL);
ini_set('display_errors', '1');
你会看到:
PHP警告:非法字符串偏移&#39; jink&#39;在文件行
PHP注意:文件行中的数组转换为字符串
PHP警告:非法字符串偏移&#39; jink&#39;在文件行
答案 1 :(得分:0)
你可能想要的是:
$query = ['summer'];
$query['jink'] = [1,4,5,6 ];
var_dump($query);
var_dump($query['jink']);
答案 2 :(得分:0)
错误是您将$query
设置为字符串然后将其转换为数组。您只需将$query = 'summer'
编辑为$query[] = 'summer'
,因为此link显示。