【问题标题】:PHP - Attributing a value to a var depending on the value of another varPHP - 根据另一个var的值将一个值归因于一个var
【发布时间】:2013-09-02 17:09:40
【问题描述】:

我正在尝试根据其文本值将值归因于 var。 我不能直接(通过我的表单)将数值归因于,因为我还在我的数据库中保存了文本值。

$section = $_POST['section']; // required
$page = $_POST['page']; // required

if ($_POST['page'] == 'Template') { $Code == '00'; }
elseif ($_POST['page'] == 'Menu') { $Code == '01'; }
elseif ($_POST['page'] == 'Home Page') { $Code == '02'; }
elseif ($_POST['page'] == 'About Us') { $Code == '03'; }
elseif ($_POST['page'] == 'Contact Us') { $Code == '04'; }

$Code_Page = $Code.''.$section;

例如,首页第18节的代码是0218。

我不明白为什么它不起作用? 只保存第二部分($section),而不是前 2 个数字。

提前致谢

【问题讨论】:

  • 所以如果我可以问,问题是什么
  • 对不起,我忘了问这个问题。为什么它不起作用?只保存第二部分($section),而不是前 2 个数字。

标签: php post if-statement var


【解决方案1】:

您提供的代码似乎为您提供了您正在寻找 0218 主页的代码。我看到的唯一错误是您没有分配 $Code。你的$Code == '02' 应该是$Code = '02'

【讨论】:

  • 非常感谢,@Satya 建议的双重相等和首先声明 $Code 解决了我的问题。
  • 声明是非常好的做法,但不应破坏您的代码。恭喜
【解决方案2】:

编辑:作者已经澄清了他现在的目标。我保留了原始答案,因为我觉得这是一个更好的解决方案。

要在 PHP 中定义变量,请使用单个等号 (=)。您在定义 $Code 时使用了两个等号 (==),即 comparison operator

原答案:

我假设您希望优化此代码。如果是这样,我觉得最好的方法是创建一个数组,或者从您提到的数据库中提取。将数据集放入数组后,您可以进行一些简单的检查:

静态数组方法:

$pages = array('Template' => '00', 'Menu' => '01', 'Home Page' => '02', 'About Us' => '03', 'Contact' => '04');
if (in_array($_POST['Page'], $pages))
{
    //We have a match, deal with output here
    $Code_Page = $pages[$_POST['Page']].$section
}
else
{
    //Output an error message here, the page isn't in the array
}

【讨论】:

    【解决方案3】:

    先添加$Code声明

    $section = $_POST['section']; // required
    $page = $_POST['page']; // required
    $Code = ''; // This was missing 
    
    if ($_POST['page'] == 'Template') { $Code == '00'; }
    elseif ($_POST['page'] == 'Menu') { $Code == '01'; }
    elseif ($_POST['page'] == 'Home Page') { $Code == '02'; }
    elseif ($_POST['page'] == 'About Us') { $Code == '03'; }
    elseif ($_POST['page'] == 'Contact Us') { $Code == '04'; }
    
    $Code_Page = $Code.''.$section;
    

    【讨论】:

    • 感谢您的帮助,首先声明我的 var 并删除双等号解决了问题。我想我需要再次阅读 PHP 的手册。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多