如何让 PHP 将我的变量视为数字?
How to make PHP see my variable as a number?
所以当我做作业时,我卡在了一点上。
该练习基于创建一个函数来检查 $word 是否为回文,根据我的测试 $L 有效并且正在向前移动到单词的右侧($L 从左边开始,$R 从右边开始)
但是 $R 根本不工作,如果 $R 被一个数字交换 - 它工作。如果打印 $R,它显示正确的数字 - 5.
$word = "madam";
function palindrome($s)
{
$i = intval(strlen($s) / 2);
$L = 0;
$R = strlen($s);
$pal = true;
for($i; $i>0; $i--)
{
if($s[$L] != $s[$R]) $pal=false;
$L++;
$R--;
}
if($pal==true)
print("palindrome");
else
print("not a palindrome");
}
palindrome($word);
我希望使 $R 成为一个值,我怀疑 PHP 将其视为一个字符串,而不是一个整数,但我不知道为什么。如果有人帮助我,我会很高兴。
如果您将字符串视为 char table,索引从 0 开始,但 strlen 从 1 开始计数,因此如果您有 'madam',则 strlen() returns 5 但最后一个字符是在 $s[4] 上,只需使用:
$R = strlen($s)-1;
作为一个快速的、脱颖而出的想法……没有循环,只是一些简单的字符串拆分,这可以检查给定的字符串 ($s
) 是否是回文。
function palindrome($s) {
// split the string in two
$left = substr($s, 0, floor(strlen($s)/2));
$right = substr($s, 0-strlen($left));
// if the left half matches the REVERSE of the right
// you've got a palindrome
return $left === strrev($right);
}
$word = "madam";
echo palindrome($word) ? "Yup" : "Nope";
基本上,它只是将单词切成两半 - 反转右半部分并将其与左半部分进行比较。如果它们匹配,那就是回文 - 目前它是区分大小写的,所以 "Madam" 不会是回文,但可以通过首先将整个东西小写来轻松调整.
所以当我做作业时,我卡在了一点上。
该练习基于创建一个函数来检查 $word 是否为回文,根据我的测试 $L 有效并且正在向前移动到单词的右侧($L 从左边开始,$R 从右边开始) 但是 $R 根本不工作,如果 $R 被一个数字交换 - 它工作。如果打印 $R,它显示正确的数字 - 5.
$word = "madam";
function palindrome($s)
{
$i = intval(strlen($s) / 2);
$L = 0;
$R = strlen($s);
$pal = true;
for($i; $i>0; $i--)
{
if($s[$L] != $s[$R]) $pal=false;
$L++;
$R--;
}
if($pal==true)
print("palindrome");
else
print("not a palindrome");
}
palindrome($word);
我希望使 $R 成为一个值,我怀疑 PHP 将其视为一个字符串,而不是一个整数,但我不知道为什么。如果有人帮助我,我会很高兴。
如果您将字符串视为 char table,索引从 0 开始,但 strlen 从 1 开始计数,因此如果您有 'madam',则 strlen() returns 5 但最后一个字符是在 $s[4] 上,只需使用:
$R = strlen($s)-1;
作为一个快速的、脱颖而出的想法……没有循环,只是一些简单的字符串拆分,这可以检查给定的字符串 ($s
) 是否是回文。
function palindrome($s) {
// split the string in two
$left = substr($s, 0, floor(strlen($s)/2));
$right = substr($s, 0-strlen($left));
// if the left half matches the REVERSE of the right
// you've got a palindrome
return $left === strrev($right);
}
$word = "madam";
echo palindrome($word) ? "Yup" : "Nope";
基本上,它只是将单词切成两半 - 反转右半部分并将其与左半部分进行比较。如果它们匹配,那就是回文 - 目前它是区分大小写的,所以 "Madam" 不会是回文,但可以通过首先将整个东西小写来轻松调整.