2014-02-11 23 views
1

请随身携带,因为我对PHP非常陌生,我一直无法理解此错误已发布的其他答案。我加载一个朋友网站来玩它,它给了我这个:注意:数组到字符串转换错误。任何想法如何解决这一问题? (我的朋友是出城)注意:数组到字符串转换PHP

function href($filename) { 
    if (@$_SERVER['HTTPS'] != 'on') { 
     return HTTP_IMAGE . $filename; 
    } else { 
     return HTTPS_IMAGE . $filename; 
    } 
} 

错误点,3号线在此代码 谢谢

+1

您必须传递数组而不是字符串作为'$ filename'。 – crush

+2

什么是$文件名值? –

+0

什么是'$ filename'?这显然不是一个字符串。你怎么调用'href()'? –

回答

1

您正在使用字符串连接运算符,其中不是字符串。也就是说,用数组。

试试这个:

function href($filename) { 
var_dump($HTTP_IMAGE); 
var_dump($filename); 
    if (@$_SERVER['HTTPS'] != 'on') { 
     return HTTP_IMAGE . $filename; 
    } else { 
     return HTTPS_IMAGE . $filename; 
    } 
} 

当你运行该代码应显示无论是内部HTTPS_IMAGE和$文件名。

由于我不知道它们包含的内容,我会跟下面的示例代码说明:

$my_array[0] = 'Hello'; 
$my_array[1] = 'world'; 
$my_array[2] = '!'; 
var_dump($my_array); 

如果执行代码,你会得到如下:

array(3) { 
    [0]=> 
    string(5) "Hello" 
    [1]=> 
    string(5) "world" 
    [2]=> 
    string(1) "!" 
} 

这是一个阵列。它是一组元素,需要通过索引来访问。例如,为了获得“世界”则需要通过其索引来访问它,“1”:

echo $my_array[1]; 

回到你的榜样,确定哪些变量是一个数组,并通过适当的索引访问它。您将通过检查var_dump()的结果来知道哪个索引。

2

你混合数组和字符串在return。请尝试以下操作:

  • 指定索引$filename(如$filename[0]

或:

  • 将其转换为字符串,例如implode()功能(如implode(',', $filename);,它给你具有数组$filename的值的字符串,由,隔开)。
+0

你怎么知道'$ filename'包含了什么? = P – crush

+0

@crush我想这是一个数组,因为错误。在这种情况下,我认为没有必要提供更多的信息来提供解决方案。 –

+0

并且总是有'var_dump'来证明@DanielLisik提到了什么 – Alex

相关问题