请有人告诉我为什么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)\ ampps \ www \ sandbox \ general \ mktime.php
答案 0 :(得分:3)
根据PHP文档,可以在类中初始化属性 有以下限制:
“此声明可能包含初始化,但是这个 初始化必须是一个常量值 - 也就是说,它必须能够 在编译时进行评估,不得依赖于运行时 信息以便进行评估。“
试试这个
<?php
class Test_Time{
private $time_Stamp;
function __construct()
{
$this->time_Stamp = mktime(6,30,0);
echo strftime("%H:%M",$this->time_Stamp);
}
}
?>
答案 1 :(得分:1)
您无法计算表达式以确定类成员的默认值。将mktime
放在构造函数中:
class Foo {
private $bar;
public function __construct() {
$this->bar = mktime(6, 30, 0);
}
}
答案 2 :(得分:1)
您无法直接在类中执行代码。它必须位于一个名为:
的函数内<?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()
函数,但在某些时候必须实现类。
这样做的原因是除非将变量定义为该类的对象,否则类实际上并不是什么。在那之前,它只是一个等待使用的框架。
答案 3 :(得分:1)
<?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();
?>
答案 4 :(得分:0)
您直接在类中回显,而不是在方法或构造函数中执行
<?php
class Test_Time{
function __construct(){
$time_Stamp = mktime(6,30,0);
echo strftime("%H:%M",$time_Stamp);
}
}
?>