【发布时间】:2015-10-22 14:05:46
【问题描述】:
作为一个非常新手的 php 编码器和 web 开发的初学者,我需要一些建议和帮助,我有一个计算.php 脚本,我将它包含在登录页面中。该脚本根据用户计算价格在表单过程中输入值。在不让事情变得复杂的情况下,因为我将尝试运行一个动态登录页面,由于我们提供 2 种不同的服务,脚本输出的计算价格可能会有所不同,因此服务 1 比服务 2 便宜。
如果会话变量等于特定值,我该如何运行数组函数,例如:
<?php
session_start();
if($_SESSION['service1'] == 'yes') {
这是 Calculation.php 脚本:
$data = array(
array(
'min' => "0",
'max' => "100,000",
'value' => 249
),
array(
'min' => "100,001",
'max' => "200,000",
'value' => 255
)
);
function getAdjustedPrice($price, &$table) {
$priceData = current(array_filter($table, function($value) use(&$price) {
return $value['min'] <= $price && $value['max'] >= $price;
}));
return $priceData['value'];
}
$input = intval($_SESSION["servicecost"]);
printf("",
$input,
getAdjustedPrice($input, $data));
如果会话变量 1 未设置为是但设置为“否”,则运行计算的第二个变体,然后我将回显输出,因为变体号 2 基本上是服务 2,价格更高。 .
<?php
session_start();
if($_SESSION['service1'] == 'no') {
$data = array(
array(
'min' => "0",
'max' => "100,000",
'value' => 450
),
array(
'min' => "100,001",
'max' => "200,000",
'value' => 600
)
);
function getAdjustedPrice($price, &$table) {
$priceData = current(array_filter($table, function($value) use(&$price) {
return $value['min'] <= $price && $value['max'] >= $price;
}));
return $priceData['value'];
}
$input = intval($_SESSION["servicecost"]);
printf("",
$input,
getAdjustedPrice($input, $data));
希望这是有道理的,我尝试自己使用 elseif 状态并这样做: if($_SESSION['service1'] == 'yes') { 然后运行它下面的代码,然后 } else { if($_SESSION['service1'] == 'no') { 但我没有运气和不断的愚蠢错误。非常感谢任何建议或意见。谢谢。
【问题讨论】:
-
不确定这个问题。代码是否不会进入 yes 或 no 代码块?那么你的 SESSION 变量就是问题所在。尝试 var_dump($_SESSION) 看看它持有什么。
-
是的,很抱歉,由于是新手,仍然很难知道确切的术语和短语供所有高级人员理解,所以我最终走了很长一段路!基本上我正在尝试根据会话值运行 2 个代码块,例如,如果 $_SESSION['service1'] 等于是,那么它将运行第一个代码块而不是第二个代码块,因为值等于 == "yes" 但如果它没有设置为 "yes" 并设置为 == "no" 它将跳过第一个块并运行第二个块。也许这可以通过 elseif 语句来完成?
标签: php arrays session if-statement