我如何编写两个带字符串的函数,如果它以指定的字符/字符串开头或以它结尾,则返回?
例如:
$str = '|Rajdeep}';
echo beginWith($str, '|'); //Returns true
echo endWith($str, '}'); //Returns true
我试过这个
function beginWith($haystack, $needle, $case = true) {
if ($case) {
return (strcmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
}
return (strcasecmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
}
function endWith($haystack, $needle, $case = true) {
if ($case) {
return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}
return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}
有没有最好的解决方案
答案 0 :(得分:2)
function beginsWith($string, $char) {
return $string[0] === $char;
}
function endWith($string, $char) {
return $string[strlen($string)-1] === $char;
}
$str = '|Rajdeep}';
var_dump(beginsWith($str, '|'));
var_dump(endWith($str, '}'));
var_dump(beginsWith($str, 'a'));
var_dump(endWith($str, 'j'));
bool(true)
bool(true)
bool(false)
bool(false)
答案 1 :(得分:0)
function beginWith($myString, $giveChar)
{
return $giveChar=== "" || strpos($myString, $giveChar) === 0;
}
function endWith($myString, $giveChar)
{
return $giveChar=== "" || substr($myString, -strlen($giveChar)) === $giveChar;
}