我对 PHP 很陌生,尤其是面向对象的 php,我正在编写一些简单的代码,但我不太确定到目前为止我所写的内容有什么问题。我敢肯定这很简单,但我已经在这堵墙上撞了一会儿,想我会在这里问。
class primes
{
$TestValues = array(0, 1, 2, 3, 4);
function IsPrime($number)
{
//if number is a number, perform the rest of the tests, else, return -1 (error)
if(is_numeric($number))
{
//if number is less than 0, return -1 (error)
if($number < 0)
return -1;
//if number is 0, then return 0 (false, not prime)
if($number == 0)
return 0;
//if number is greater than 1024, return -1 (error)
if($number > 1024)
return -1;
//if number is 1, return 0 (false, not prime)
if($number == 1)
return 0;
//if number is 2, return 1 (true, is prime)
if($number == 2)
return 1;
//if number mod 2 is 0, then it is even, and no even number is prime except 2, which is handled above. so return 0 (false, not prime)
if($number % 2 == 0)
return 0;
//if number has passed all previous tests, mod it by all odd numbers from 3 to its square root rounded up.
for($i = 3; $i <= ceil(sqrt($number)); $i = $i +2)
{
//if any numbers mod 3 to its square root equal 0, return 0, (false, not prime)
if($number % $i == 0)
return 0;
}
//if the number has passed all above requirements, then it is a prime number below 1024.
return 1;
else
{
return -1;
}
}
}
function TestIsPrime()
{
foreach($TestValues as $value)
IsPrime($value);
if(IsPrime() == 0)
echo($value . "=> Is not Prime");
elseif(IsPrime() == 1)
echo($value . "=> Is Prime");
elseif(IsPrime() == -1)
echo($value . "=> Is an Error");
}
function main()
{
TestIsPrime();
}
}
main();
我收到一条错误消息,说我没有将数组放置在当前位置。我不太确定 php 代码的结构应该如何与类一起使用,所以我不确定将$TestValues
数组放在哪里,所以我尝试了几个地方,但没有一个会被接受。另外,我在连接到 first 的 else 语句上遇到错误if(is_numeric($number))
,但我不能确定该错误不是由我遇到的另一个小错误引起的。最后一个错误是我不确定在这个单页代码中的哪个位置调用类中的函数。任何帮助,将不胜感激。再一次,我对在 php 中做任何有用的事情都很陌生,但到目前为止我很喜欢它。谢谢,