php数组:没有显示正确的值

时间:2014-09-26 15:49:42

标签: php arrays

我有一个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)

的东西

3 个答案:

答案 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']);

PHP Sandbox:http://sandbox.onlinephpfunctions.com/code/50f22fb5de571baf5978ab37e8cd645ec174125e

答案 2 :(得分:0)

错误是您将$query设置为字符串然后将其转换为数组。您只需将$query = 'summer'编辑为$query[] = 'summer',因为此link显示。