0

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

    }

    ?>

报告 Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\Program Files (x86)\Ampps\www\sandbox\general\mktime.php 第 5 行

4

5 回答 5

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);
   }
}
?>
于 2012-09-05T10:32:15.443 回答
1

您无法评估表达式以确定类成员的默认值。而是放入mktime构造函数:

class Foo {
    private $bar;
    public function __construct() {
        $this->bar = mktime(6, 30, 0);
    }
}
于 2012-09-05T10:30:36.307 回答
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()函数,但在某些时候必须实例化该类。

这样做的原因是一个类实际上不是任何东西,除非一个变量被定义为该类的对象。在那之前,它只是一个等待被使用的框架。

于 2012-09-05T10:32:45.410 回答
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();
?>
于 2012-09-05T10:33:30.987 回答
0

您直接在类中回显,而是在方法或构造函数中执行

<?php

class Test_Time{

   function __construct(){

    $time_Stamp = mktime(6,30,0);

    echo strftime("%H:%M",$time_Stamp);
    }

}

?>
于 2012-09-05T10:32:08.377 回答