有人能告诉我为什么mktime在类内给出错误吗??
<?php
$time_Stamp = mktime(6,30,0);
echo strftime("%H:%M",$time_Stamp);
?>
报告6:30
<?php
class Test_Time{
private $time_Stamp = mktime(6,30,0);
}
?>
报告分析错误:语法错误,意外的"(",应为","或";",位于第5行的C:''Program Files(x86)''Apps''www''ssandbox''general''mktime.php
根据PHP文档,可以初始化类中的属性有以下限制:
"此声明可能包括初始化,但是初始化必须是一个常数值,也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息以便进行评估。"
试试这个
<?php
class Test_Time{
private $time_Stamp;
function __construct()
{
$this->time_Stamp = mktime(6,30,0);
echo strftime("%H:%M",$this->time_Stamp);
}
}
?>
不能通过计算表达式来确定类成员的默认值。将mktime
放在构造函数中:
class Foo {
private $bar;
public function __construct() {
$this->bar = mktime(6, 30, 0);
}
}
不能直接在类内执行代码。它必须在一个称为的函数内部
<?php
class Test_Time
{
private $time_Stamp;
function showTime()
{
$this->time_stamp=mktime(6,30,0);
echo strftime("%H:%M",$this->time_Stamp);
}
}
$var=new Test_Time();
$var->showTime();
?>
这可能是一个__construct()
函数,但在某个时刻必须实例化该类。
原因是,除非变量被定义为类的对象,否则类实际上什么都不是。在此之前,它只是一个等待使用的框架。
<?php
class Test_Time{
private $time_Stamp;
function __construct(){
$this->time_Stamp = mktime(6, 30, 0);
}
function printTime(){
echo strftime("%H:%M", $this->time_Stamp);
}
}
//example usage
$test = new Test_Time();
$test->printTime();
?>
您在类中直接回显,请在方法或构造函数中执行,而不是在中执行
<?php
class Test_Time{
function __construct(){
$time_Stamp = mktime(6,30,0);
echo strftime("%H:%M",$time_Stamp);
}
}
?>