PHP确定字符串的起始字符和字符串的长度,然后根据结果为变量赋值
PHP Determine the starting characters of a string and length of a string then assign values to variable based upon the results
我有这个 if/elseif 语句,如果 $DiscountDescription 不为空,那么我会搜索它是否以 "e"、"E"、"A" 开头并且有 12 个字符或 10 个字符。其他两种情况是 18 个字符和 2 个破折号,以及 9 个字符都是数字。
代码在我看来是正确的,但似乎不起作用。有什么想法吗?
$DiscountDescription = $_order->getDiscountDescription();
if ($DiscountDescription != '') {
if (substr($DiscountDescription,0,1 == "e") && strlen($DiscountDescription == 12)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (substr($DiscountDescription,0,1 == "E") && strlen($DiscountDescription == 10)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (substr($DiscountDescription,0,1 == "A") && strlen($DiscountDescription == 10)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (strlen($DiscountDescription == 18) && substr_count($DiscountDescription,'-' == 2)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (strlen($DiscountDescription == 9) && ctype_digit($DiscountDescription)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
//$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
正如其他人所说,您似乎在长度检查中进行比较,但这是行不通的。您想获取长度,然后将其与整数进行比较。
作为最佳实践,您还应该尝试使用严格比较 ===
而不是 ==
。
我有这个 if/elseif 语句,如果 $DiscountDescription 不为空,那么我会搜索它是否以 "e"、"E"、"A" 开头并且有 12 个字符或 10 个字符。其他两种情况是 18 个字符和 2 个破折号,以及 9 个字符都是数字。
代码在我看来是正确的,但似乎不起作用。有什么想法吗?
$DiscountDescription = $_order->getDiscountDescription();
if ($DiscountDescription != '') {
if (substr($DiscountDescription,0,1 == "e") && strlen($DiscountDescription == 12)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (substr($DiscountDescription,0,1 == "E") && strlen($DiscountDescription == 10)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (substr($DiscountDescription,0,1 == "A") && strlen($DiscountDescription == 10)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (strlen($DiscountDescription == 18) && substr_count($DiscountDescription,'-' == 2)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
elseif (strlen($DiscountDescription == 9) && ctype_digit($DiscountDescription)){
$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
//$_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
}
正如其他人所说,您似乎在长度检查中进行比较,但这是行不通的。您想获取长度,然后将其与整数进行比较。
作为最佳实践,您还应该尝试使用严格比较 ===
而不是 ==
。