我正在尝试创建一个所谓的希腊数字转换器工具。这里的输入将是字母,这些字母将转换为数字。对于每个字母,都会有一个相应的数字,并且还会考虑数字。现在,我的想法是创建一个数组,其中将放置所有字母及其对应的数值。因此,当用户输入字母组合(最多 3 位数字)时,convert() 函数将查找输入的这些字母的相应值,获取这些值,并将所有内容相加。不幸的是,当我进行编码时,我遇到了这个错误(标题中提到的那个),我似乎无法弄清楚如何解决它。这听起来可能很愚蠢,但请理解,因为我仍在学习 PHP 的过程中。
这是我能够想出的代码。
<?php error_reporting(0);
class GreekNum
{
public function setText($text)
{
$this->text=$text;
}
public function getText()
{
return $this->text;
}
public function Convert($text)
{
$TextLength = strlen($text);
$text = strtoupper($text);
$text = str_split($text);
$collection = array(
"A" => 1,
"B" => 2,
"G" => 3,
"D" => 4,
"E" => 5,
"#" => 6,
"Z" => 7,
"Y" => 8,
"H" => 9,
"I" => 10,
"K" => 20,
"L" => 30,
"M" => 40,
"N" => 50,
"X" => 60,
"O" => 70,
"P" => 80,
"Q" => 90,
"R" => 100,
"S" => 200,
"T" => 300,
"U" => 400,
"F" => 500,
"C" => 600,
"$" => 700,
"W" => 800,
"3" => 900,
);
if(isset($text))
{
$total = 0;
for($i=0; $i<$TextLength; $i++)
{
if(array_key_exists($text[$i], $collection))
{
$total += $collection[$text[$i]];
}
if(end($text)!='.')
{
echo "Please make sure your line ends with a period. <br><br>";
return false;
}
}
return $total;
}
}
}
$GreekNum = new GreekNum();
$text = $_POST['text'];
$GreekNum->setText($text);
echo "<br>";
echo "<b>Entered Values: </b><br>". $GreekNum->getText();
echo "<br>";
echo "<br>";
echo "<b>Decimal Number Equivalence: </b><br/>". $GreekNum->Convert($text);
?>
错误是关于 $total 的,我似乎不知道如何解决这个问题。任何帮助将不胜感激。非常感谢!
这已经解决了,但是为了任何可能需要的人,我再次将其编辑为当前适用于我的代码。