在类中使用时,mktime会产生语法错误吗?

时间:2012-09-05 10:29:02

标签: php

请有人告诉我为什么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

5 个答案:

答案 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);
    }

}

?>