2014-09-26 25 views
-2

我有一个php代码。我只是试图定义和获取数组。以下是代码。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

不,输出是分析错误。一旦修复,它是另一个解析错误,然后是未定义的函数。 – AbraCadaver 2014-09-26 15:52:25

+0

您在此处显示的代码将不会运行。语法错误太多。 – 2014-09-26 15:52:41

+0

你在'var_dump'里面有$ query ['jink''(缺少右括号)。您还遗漏了'$ query ='summer''上的分号是否是这篇文章或实际代码中的错字? – Jakar 2014-09-26 15:52:50

回答

3

我定你的错误,以显示该问题:

$query = 'summer'; 
$query['jink'] = array(1,4,5,6); 

$query是一个字符串“夏天”这样['jink'],不是一个有效的字符串转换为0偏移和它访问的第一个字符“summer”。此外,array(1,4,5,6)不是字符串是Array和“一个”从Array被分配到偏移量为0“夏天”屈服“Aummer”:

var_dump($query); 

现在再次你得到的字符串偏移0,这是 “” 从 “Aummer”:

var_dump($query['jink']); 

如果哟u使用错误报告:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

您将看到:

PHP的警告:非法串文件行偏移 'jink'

PHP的通知:数组字符串转换在文件中的行

PHP警告:文件行中非法字符串偏移'jink'

+0

谢谢。你给出了正确的解释。 – 2014-09-26 16:16:27

0

你也许想要什么东西:

$query = ['summer']; 
$query['jink'] = [1,4,5,6 ]; 
var_dump($query); 
var_dump($query['jink']); 

PHP沙盒:http://sandbox.onlinephpfunctions.com/code/50f22fb5de571baf5978ab37e8cd645ec174125e

+0

我试过你的。它给出了相同的输出A和Aummer。 A从哪里来。 – 2014-09-26 16:00:27

+0

你是指评论中的人?我认为@AbraCadaver发布并提供了一个解决方案。 ;) – loveNoHate 2014-09-26 16:03:00

+0

是的。有用。我再次测试。谢谢 – 2014-09-26 16:13:49

0

那么错误是你设置$query作为一个字符串,然后把它变成一个数组。你应该简单地编辑$query = 'summer'$query[] = 'summer',因为这link显示。

+0

完美答案。这非常有帮助。谢谢 – 2014-09-26 16:28:00

+0

不客气。 – user3980820 2014-09-26 16:30:36