面向对象PHP问题
我有一个名为面向对象PHP问题,php,oop,Php,Oop,我有一个名为Captcha.php的类,比如: <?php class Captcha { const FIRST_NUM = 1; const SECOND_NUM = 9; private $num1 = rand(FIRST_NUM,SECOND_NUM); private $num2 = rand(FIRST_NUM,SECOND_NUM); function CreatNums(){ return $num1;
Captcha.php
的类,比如:
<?php
class Captcha {
const FIRST_NUM = 1;
const SECOND_NUM = 9;
private $num1 = rand(FIRST_NUM,SECOND_NUM);
private $num2 = rand(FIRST_NUM,SECOND_NUM);
function CreatNums(){
return $num1;
}
}
尽早启用错误报告
以查看语法错误。启用错误报告。对于初学者,通常不能将属性的默认值设置为表达式的结果。这需要在构造函数中完成。Jonatha明白了:您的类是一个完全的语法错误,因此PHP在include()阶段退出。因为您没有提到查看任何错误,所以您可能已经关闭了错误报告和显示错误。在开发或调试时,两者都不应该关闭。为了解释正在发生的事情。。。您不能将类变量的默认值设置为方法调用,这是因为它需要在编译时计算(是的,PHP编译…),并且rand()
只能在“运行时”期间运行。因此,由于\uu construct()
是在运行时执行的,因此我们得到了上面的答案。。。
<?php
include_once('Captcha.php');
$tat = new Captcha();
$result = $tat->CreatNums();
echo $result;
<?php
class Captcha {
const FIRST_NUM = 1;
const SECOND_NUM = 9;
private $num1;
private $num2;
function __construct(){
$this->num1 = rand(self::FIRST_NUM, self::SECOND_NUM);
$this->num2 = rand(self::FIRST_NUM, self::SECOND_NUM);
}
function CreatNums(){
return $this->num1;
}
}
$tat = new Captcha();
$result = $tat->CreatNums();
echo $result;