如何在数组中存储和调用PHP中的变量

时间:2015-10-21 21:54:56

标签: php wordpress

我正在使用下面的脚本在网站上创建随机背景图像。它有数组项并将它们附加到变量$ selectedBg。

isRunningInIE()

我想接受$ selectedBg中的内容,将其存储为全局变量,以便在我的wordpress isntallation中的其他.php文件中使用,并执行一个切换案例,为数组中的每个变量创建不同的输出。假设它是'background-1.jpg'作为$ selectedBg的值,那么我想输出文本。如果将'background-2.jpg'作为$ selectedBg的值,那么我想输出不同的文本,依此类推。

我如何编写检查$ selectedBg中存储内容的代码?我迷路了试图

<?php
  $bg = array('background-1.jpg', 'background-2.jpg', 'background-3.jpg', 'background-4.jpg', 'background-5.jpg' ); // array of filenames
  $i = rand(0, count($bg)-1); //generate random number size of the array
  $selectedBg = "$bg[$i]"; // set variable equal to which random filename was chosen
?>
<style type="text/css">
body{
background: url(<?php bloginfo('template_url'); ?>/images/backgrounds/<?php echo $selectedBg; ?>) no-repeat;
}
</style>

或等效物。

我之所以将其设为全局,是因为我在header.php中有代码,但我需要查看页面上显示的背景类型以输出某些文本。如果是background-1.jpg我想要TEXT A;如果background-2.jpg我想要TEXT B;等

1 个答案:

答案 0 :(得分:1)

从我在代码中看到的内容来看,$ selectedBg不是一个数组。

$i = rand(0, count($bg)-1); //generate random number size of the array
$selectedBg = "$bg[$i]"; 

$ bg [$ i]是一个字符串。

此外,&#34; $ bg [$ i]&#34;引号错了。应该是:

$selectedBg = $bg[$i];  

你的switch case语法错误,应该是:

switch ($selectedBg) {
    case 'background-1.jpg':
        echo "whatever";
    break;
}

也可以接受:

switch (true) {
    case($selectedBg == 'background-1.jpg'):
        echo "whatever";
    break;
}

Switch(变量)匹配case(变量)。

Switch

上的PHP文档