当PHP中的名称相似时,检查值是否为true
我在一个名为“hasMonday”,“hasTuesday”,“hasWednesday”等的表中有一些列…使用布尔值来了解某个产品是否属于某一天(可以出现在一天以上)
现在我正在列出日期并显示产品的数据(如果可用)(true).与此类似的东西: 星期一(hasMonday = true) 产品数据,价格等 星期二(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"]) { 你建议的方式(如果($Product [‘has.$day’]){)是在正确的轨道上,但变量不在单引号内解析,并且当interpolating a variable into a string像那样时,并不需要连接运算符(.) . 正如其他人所评论的那样,这种方式在变量之后密钥中有任何附加字符串的情况下不起作用,例如$Product [“$dayIsPresent”]不起作用,因为变量的结尾是不明确的.对于像这样的情况,变量必须是enclosed in brackets才能正确解释(例如$Product [“{$day} IsPresent”]).对于像你这样的情况,变量是字符串中的最后一个东西,括号不是必需的,但如果你愿意,添加它们并没有什么坏处. 如果除了具有true或false值之外,可能实际上没有设置$Product [‘hasMonday’]等,您可以使用!empty而不是简单地评估该数组键的真实性. if (!empty($Product["has{$day}"])) { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |