我的部分代码中包含以下内容。它检查$ item是否为大写,如果是,则为div元素添加一个“大写”类。
`echo "<div class='". $alt . "'><div class='menu-item";
if (ctype_upper($item)) {
echo " uppercase";
}
echo "'>" .$item . "</div>";`
但是,如果字符串$ item包含任何空格(例如“THIS STRING”),则不会应用此“大写”类属性。
有没有人对如何避免这种情况有所了解。
提前致谢
答案 0 :(得分:3)
您可以在测试之前暂时从$item
删除空格:
if (ctype_upper(str_replace(' ', '', $item))
然而,在你自己的函数中做一个抽象级别可能是个好主意:
function isMenuItemUpperCase($item) {
return ctype_upper(str_replace(' ', '', $item);
}
然后:
if (isMenuItemUpperCase($item))
这样,呼叫站点(最后一行)非常清晰可读,并且您有一个中心位置,如果需要,将来可以从中改变行为。
答案 1 :(得分:1)
我认为在使用ctype_upper
实施例
$alt = "Test Alt";
$item = "THIS STRING \t:\t HI";
printf("<div class='%s'><div class='menu-item %s' > %s </div> </div>", $alt, isUpper($item), $item);
HTML输出
<div class="Test Alt">
<div class="menu-item uppercase"> THIS STRING : HI </div>
</div>
使用的功能
function isUpper($item) {
return ctype_upper(preg_replace('/\W+/', '', $item)) ? "uppercase" : "";
}