在php中不重新声明变量
我有个问题,我的变量$x没有重新定义为“英语”。问题在哪里?非常感谢:在php中不重新声明变量,php,mysql,Php,Mysql,我有个问题,我的变量$x没有重新定义为“英语”。问题在哪里?非常感谢: <?php // assign language or default english $x = $lang_detected; $language_table = ' <form id="lang_detected" method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '"> <input type="but
<?php
// assign language or default english
$x = $lang_detected;
$language_table = '
<form id="lang_detected" method="post"
action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">
<input type="button" value="' . $x . '" onclick = "displayLangList()" style="width:200px;display:block;margin:auto;" />
<input type="submit" value="ok" />
</form>';
$possible_lang = mysqli_query($con,
'SELECT name2 FROM page WHERE name2 = "' . $lang_detected . '"');
if (mysqli_num_rows($possible_lang) > 0 ) {
echo $language_table;
} else {
$x = 'english';
echo $language_table;
}
?>
$x仍然保留以下值:
$x = $lang_detected;
非常感谢 当您使用其他变量构造变量时,这些值会在该确切时刻烘焙。除了将其封装到函数中,没有其他方法可以推迟计算 即:
$x = 'a';
$y = '(' . $x . ')';
$x = 'b';
在这种情况下,$y
是并且将保持,(a)
,即使$x
已更改。没有约束力的区别
在您的代码中,您可以始终向下移动该内容并避免重复:
if (mysqli_num_rows($possible_lang) > 0 ) {
$x = "bla bla";
} else {
$x = 'english';
}
echo '<form ...language table'.$x.'...';
if(mysqli\u num\u行($mably\u lang)>0){
$x=“bla bla”;
}否则{
$x=‘英语’;
}
echo'当您使用其他变量构造变量时,这些值将在该时刻烘焙。除了将其封装到函数中,没有其他方法可以推迟计算
即:
$x = 'a';
$y = '(' . $x . ')';
$x = 'b';
在这种情况下,$y
是并且将保持,(a)
,即使$x
已更改。没有约束力的区别
在您的代码中,您可以始终向下移动该内容并避免重复:
if (mysqli_num_rows($possible_lang) > 0 ) {
$x = "bla bla";
} else {
$x = 'english';
}
echo '<form ...language table'.$x.'...';
if(mysqli\u num\u行($mably\u lang)>0){
$x=“bla bla”;
}否则{
$x=‘英语’;
}
echo'要解决您的问题,可以使用函数
<?php
// assign language or default english
$x = $lang_detected;
$possible_lang = mysqli_query($con,
'SELECT name2 FROM page WHERE name2 = "' . $lang_detected . '"');
if (mysqli_num_rows($possible_lang) > 0 ) {
echo getLanguageTable($x);
} else {
$x = 'english';
echo getLanguageTable($x);
}
function getLanguageTable($x) {
return '
<form id="lang_detected" method="post"
action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">
<input type="button" value="' . $x . '" onclick = "displayLangList()" style="width:200px;display:block;margin:auto;" />
<input type="submit" value="ok" />
</form>';
}
要解决您的问题,您可以使用函数
<?php
// assign language or default english
$x = $lang_detected;
$possible_lang = mysqli_query($con,
'SELECT name2 FROM page WHERE name2 = "' . $lang_detected . '"');
if (mysqli_num_rows($possible_lang) > 0 ) {
echo getLanguageTable($x);
} else {
$x = 'english';
echo getLanguageTable($x);
}
function getLanguageTable($x) {
return '
<form id="lang_detected" method="post"
action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">
<input type="button" value="' . $x . '" onclick = "displayLangList()" style="width:200px;display:block;margin:auto;" />
<input type="submit" value="ok" />
</form>';
}
警告:当使用mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能非常有害。警告:使用mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。