PHP 从大小写切换获取变量
PHP Get Variable From Case Switch
我正在使用切换函数根据 URL (http://localhost/design/?state=AL) 中设置的变量更改我页面上的变量。
我不断收到以下错误:注意:未定义变量:C:\wamp\www\design\includes\strobeLaws.php 中的 topBeacon,第 84 行
这是我的 PHP 代码:
<?php
if(isset($_GET['state']))
{
$term = strtolower($_GET['state']);
switch($term)
{
case 'SL':
echo "<td>Please select a state.</td>";
break;
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
}
}
?>
HTML 的部分包含变量应回显的位置:
<tr>
<td>Top Beacon:</td>
<td><?php echo $topBeacon; ?></td> <!--Line 84 From Error -->
</tr>
我认为我做的一切都正确,但我不明白为什么我在设置变量时收到错误。
考虑 $term
等于 'SL'
时的代码路径,未设置 $topBeacon
并因此导致未定义的错误。
如果你想解决这个错误,我建议你这样做,你可以添加逻辑来有条件地显示这些变量。
例如:
<tr>
<td>Top Beacon:</td>
<td><?php echo isset($topBeacon) ? $topBeacon : ''; ?></td>
</tr>
另一种选择是默认 $topBeacon
(和其他变量):
$topBeacon = '';
// default additional variables
$term = strtolower($_GET['state']);
switch($term)
{
// ...
在一遍又一遍地重写代码后,我想通了。我从一个通用的例子开始。我错过了一个重要的细节,所有回答的人也都错过了,所以我将此作为答案发布以供将来参考。
我说我的 URL 看起来像这样:http://localhost/design/?state=AL
我忘记了这一行:$term = strtolower($_GET['state']);
还有我的一个案例的例子:
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
我的 switch case 函数正在等待 URL 变成大写字母,同时 $term 变成小写字母。
这是迄今为止完整更新的代码(工作,即不包括所有 50 个州):
<?php
if(isset($_GET['state']))
{
$term = strtoupper($_GET['state']);
switch($term)
{
default:
$topBeacon = 'Select A State';
$forwardBeacon = 'Select A State';
$rearBeacon = 'Select A State';
case 'SL':
$topBeacon = 'Select A State';
$forwardBeacon = 'Select A State';
$rearBeacon = 'Select A State';
break;
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
}
}
?>
<table style="width:400px" id="strobeLawsTable">
<tr>
<td>Top Beacon:</td>
<td><?php echo isset($topBeacon) ? $topBeacon : ''; ?></td>
</tr>
<tr>
<td>Forward Facing:</td>
<td><?php echo isset($forwardBeacon) ? $forwardBeacon : ''; ?></td>
</tr>
<tr>
<td>Rear Facing:</td>
<td><?php echo isset($rearBeacon) ? $rearBeacon : ''; ?></td>
</tr>
</table>
我正在使用切换函数根据 URL (http://localhost/design/?state=AL) 中设置的变量更改我页面上的变量。
我不断收到以下错误:注意:未定义变量:C:\wamp\www\design\includes\strobeLaws.php 中的 topBeacon,第 84 行
这是我的 PHP 代码:
<?php
if(isset($_GET['state']))
{
$term = strtolower($_GET['state']);
switch($term)
{
case 'SL':
echo "<td>Please select a state.</td>";
break;
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
}
}
?>
HTML 的部分包含变量应回显的位置:
<tr>
<td>Top Beacon:</td>
<td><?php echo $topBeacon; ?></td> <!--Line 84 From Error -->
</tr>
我认为我做的一切都正确,但我不明白为什么我在设置变量时收到错误。
考虑 $term
等于 'SL'
时的代码路径,未设置 $topBeacon
并因此导致未定义的错误。
如果你想解决这个错误,我建议你这样做,你可以添加逻辑来有条件地显示这些变量。
例如:
<tr>
<td>Top Beacon:</td>
<td><?php echo isset($topBeacon) ? $topBeacon : ''; ?></td>
</tr>
另一种选择是默认 $topBeacon
(和其他变量):
$topBeacon = '';
// default additional variables
$term = strtolower($_GET['state']);
switch($term)
{
// ...
在一遍又一遍地重写代码后,我想通了。我从一个通用的例子开始。我错过了一个重要的细节,所有回答的人也都错过了,所以我将此作为答案发布以供将来参考。
我说我的 URL 看起来像这样:http://localhost/design/?state=AL
我忘记了这一行:$term = strtolower($_GET['state']);
还有我的一个案例的例子:
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
我的 switch case 函数正在等待 URL 变成大写字母,同时 $term 变成小写字母。
这是迄今为止完整更新的代码(工作,即不包括所有 50 个州):
<?php
if(isset($_GET['state']))
{
$term = strtoupper($_GET['state']);
switch($term)
{
default:
$topBeacon = 'Select A State';
$forwardBeacon = 'Select A State';
$rearBeacon = 'Select A State';
case 'SL':
$topBeacon = 'Select A State';
$forwardBeacon = 'Select A State';
$rearBeacon = 'Select A State';
break;
case 'AL':
$topBeacon = 'Amber';
$forwardBeacon = 'Amber';
$rearBeacon = 'Amber';
break;
}
}
?>
<table style="width:400px" id="strobeLawsTable">
<tr>
<td>Top Beacon:</td>
<td><?php echo isset($topBeacon) ? $topBeacon : ''; ?></td>
</tr>
<tr>
<td>Forward Facing:</td>
<td><?php echo isset($forwardBeacon) ? $forwardBeacon : ''; ?></td>
</tr>
<tr>
<td>Rear Facing:</td>
<td><?php echo isset($rearBeacon) ? $rearBeacon : ''; ?></td>
</tr>
</table>