【发布时间】:2020-02-26 10:49:44
【问题描述】:
我的问题是在 PHP 中创建它很简单:
switch ($var) {
case 1:
$foo = "test";
break;
case 2:
$foo = "test1";
break;
case 3:
$foo = "test2";
break;
}
如何使用数据库数据动态创建它?
思路如下:
switch ($var) {
while ($row = mysqli_fetch_assoc($result)) {
case $row['mydata1'] :
$foo = $row['mydata2'];
break;
}
}
这可能吗?
【问题讨论】:
-
您可以动态构建
.php文件,然后执行该文件。本质上,您是在谈论编写生成代码的代码,该代码本身表达了预期的逻辑。您需要将这两个步骤分开。不过,这个想法似乎充满了潜在的问题,并且只应在您明确构建代码生成工具时使用,而不是仅在尝试比较值时使用。你为什么要这样做呢?为什么不将值与循环中的if语句进行比较? -
感谢您回答@David 我的代码中有一个开关,有 10 种可能的情况,使用开关似乎比使用 10 个 if 更理想。现在我必须在 5 个不同的地方做同样的事情,拥有一个包含所有内容的数据库并且在代码中为每个人提供相同的功能似乎更优化,如果不使用数据库中的数据,我必须放置 10 个案例在 5 个不同的站点进行切换。不知道我解释的好不好
-
如果循环遍历,只有一个if。
-
@RubenAmezcua:您仍然可以使用数据库并循环遍历您的值,只需在
if条件下比较这些值,而不是像这样尝试构建switch。听起来您混淆了两个不同的问题,一个是尝试使用动态值,另一个是尝试使用switch。解决前一个问题,后者无关紧要。 -
@David 我的想法是使用开关,但我会尝试 if,最后我会告诉你它是否正常工作
标签: php switch-statement