(PHP)如何使用随机函数分配变量,并且只执行一次?每当我引用变量时,它都会不断变化
我似乎遇到的问题是,每当我引用$j变量时,它都会切换,这是有意义的,因为它实际上被分配给了一个函数。我可能只是有一个程序员块,但是,我如何使它一次生成一个随机数,并将其分配给一个不会改变的变量 提前谢谢(PHP)如何使用随机函数分配变量,并且只执行一次?每当我引用变量时,它都会不断变化,php,variables,Php,Variables,我似乎遇到的问题是,每当我引用$j变量时,它都会切换,这是有意义的,因为它实际上被分配给了一个函数。我可能只是有一个程序员块,但是,我如何使它一次生成一个随机数,并将其分配给一个不会改变的变量 提前谢谢 global $wpdb; $j = rand(); $table_name = 'quiz'; if(isset($_POST["nextpage"]) && $_POST["nextpage"]!="") { $j = rand(); $nextpage
global $wpdb;
$j = rand();
$table_name = 'quiz';
if(isset($_POST["nextpage"]) && $_POST["nextpage"]!="") {
$j = rand();
$nextpage = mysql_real_escape_string($_POST["nextpage"]);
switch ($nextpage) {
case '2':
$wpdb->insert($table_name, array('Q1score'=>$_POST[Q1],'Q2score'=>$_POST[Q2],'Q3score'=>$_POST[Q3],'ID'=>$j));
$_SESSION['page'] = 2;
break;
case '3':
$wpdb->update($table_name, array('Q4score'=>$_POST[Q4],'Q5score'=>$_POST[Q5],'Q6score'=>$_POST[Q6],'Q7score'=>$_POST[Q7]), array('ID'=>$j));
$_SESSION['page'] = 3;
break;
case '4':
$_SESSION['page'] = 4;
break;
}
} else {
if (!isset($_SESSION["page"])) {
$_SESSION["page"] = "1";
} else {
/* do nothing */
}
}
使用isset()
查看是否已在此范围内定义它
if ( !isset( $j ) ) $j = rand();
如果要在一个会话期间跨多个页面加载进行维护,请填充$\u会话[]
变量
if ( !isset( $_SESSION['j'] ) ) $_SESSION['j'] = rand(); // expects session_start() to be called somewhere above
$j = $_SESSION['j'];
挑一个或另一个
global $wpdb;
if ( !isset( $_SESSION['j'] ) ) $_SESSION['j'] = rand(); // expects session_start() to be called somewhere above
$j = $_SESSION['j'];
$table_name = 'quiz';
if(isset($_POST["nextpage"]) && $_POST["nextpage"]!="") {
/* $j = rand(); remove this assignment */
$nextpage = mysql_real_escape_string($_POST["nextpage"]);
switch ($nextpage) {
case '2':
$wpdb->insert($table_name, array('Q1score'=>$_POST[Q1],'Q2score'=>$_POST[Q2],'Q3score'=>$_POST[Q3],'ID'=>$j));
$_SESSION['page'] = 2;
break;
case '3':
$wpdb->update($table_name, array('Q4score'=>$_POST[Q4],'Q5score'=>$_POST[Q5],'Q6score'=>$_POST[Q6],'Q7score'=>$_POST[Q7]), array('ID'=>$j));
$_SESSION['page'] = 3;
break;
case '4':
$_SESSION['page'] = 4;
break;
}
} else {
if (!isset($_SESSION["page"])) {
$_SESSION["page"] = "1";
} else {
/* do nothing */
}
}
在脚本的一次运行中“不会更改”,或者在多个请求中“不会更改”,一次?每个用户一次?一次什么?不会在一次脚本运行中更改。因此,每当我引用更新数据库时,我不希望那个随机数在我使用它作为数据库中的唯一ID时发生变化database@ZacharyToney将其放入会话中?与其随机发送上一个id,不如通过
POST
,它将帮助您进行查询和分页,并为您解决许多问题。我之所以这么说,是因为您在查询中使用了该随机数进行id匹配,就像这个建议一样。工作得很好。然而,有没有更好的方法让未来的程序员知道这一点?