我在一个名为“hassmonday”、“hasstuday”、“hasstuday”的表中有一些列…用布尔值来知道某个产品是否属于某一天(可以出现在一天以上)。
现在我列了一个日期列表,如果有产品的话,我会显示它的数据(真的)。类似的东西:
星期一(hasMonday=真)
产品、价格等资料。
星期二(hasTuesday=false)
今天没有产品
——
我用一周中的几天做了一个数组,现在我想知道这一天有一个产品。这是我目前的代码:
$days= array("Monday", "Tuesday", "Wednesday", "Thursday","Friday","Saturday","Sunday");
foreach ($days as $day) {
echo '<div id="$day" class="dayDiv">';
echo "<h4>$day Products</h4>";
if ($Product['hasMonday'] = true) {
// Show the info
}else{
// "No info to show" message
}...
正如你所看到的,上面的代码重复每天的所有产品,所以我希望能用任何可能的步骤来检查这个。类似于:
foreach ($days as $day) {
echo '<div id="$day" class="dayDiv">';
echo "<h4>$day Products</h4>";
if($Product['has.$day']){
//show the info
}else{
// "No info to show" message
}
我不确定我写的是否可能,但我相信这有助于理解更多我想得到的东西。
提前谢谢你的回答
最佳答案
我想你在找:
if ($Product["has$day"]) {
你建议的方式(
if($Product['has.$day']){
)是在正确的轨道上,但是变量不是在单引号中解析的,而级联运算符(.
)在AA>这样的时候是不必要的。正如其他人所评论的,这种方法在变量后面的键中有任何附加字符串的情况下不起作用,例如
$Product["$dayIsPresent"]
不起作用,因为变量的结尾不明确。对于此类情况,变量必须interpolating a variable into a string到才能正确解释(例如$Product["{$day}IsPresent"]
)。对于像您这样的情况,在字符串中变量是最后一件事,括号是不必要的,但是如果您愿意的话,添加括号也不会有什么坏处。如果可能除了具有
true
或false
值,$Product['hasMonday']
等可能实际上没有被设置,你可以使用!empty
而不是简单地评估数组关键字的真实性。if (!empty($Product["has{$day}"])) {
关于php - 当PHP中的名称相似时,检查值是否为true,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39155637/