【问题标题】:Error in php code I have written unable to understand how to correct it?我写的 php 代码中的错误无法理解如何纠正它?
【发布时间】:2012-07-23 11:59:24
【问题描述】:
类日志记录{ 私人 $log_file = 'c:/xampp/htdocs/jcert2/tmp/sslogfile.txt'; 公共静态 $fp = null; 公共静态函数 lwrite($message){ if (Logging::fp) 记录::lopen(); // $script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME); $time = date('H:i:s'); fwrite(Logging::fp, "$time $message\n"); } // 打开日志文件 私有静态函数 lopen(){ $lfile = $this->log_file; $today = date('Y-m-d'); Logging::fp = fopen($lfile . '_' . $today, 'a') 或 exit("无法打开 $lfile!"); } }

我创建了一个日志文件,最后一行出现错误

Logging::fp = fopen(....)
错误是意外的 '=' 有人可以指导我理解和纠正错误。

【问题讨论】:

    标签: php oop


    【解决方案1】:

    缺少 $: Logging::$fp = fopen($lfile . '_' . $today, 'a') 或 exit("Can't open $lfile!");

    【讨论】:

      【解决方案2】:

      双冒号表示类的静态属性。您不能为类的静态属性赋值。有关静态属性的更多信息,请参阅:

      http://php.net/manual/en/language.oop5.static.php

      【讨论】:

      • 你能指导我如何修改这段代码来实现我所需要的。
      【解决方案3】:

      你可以使用getter/setter

      class Logging{   
      
          private $log_file = 'c:/xampp/htdocs/jcert2/tmp/sslogfile.txt';   
          private $fp = null;
      
          private static function lopen(){   
              $lfile = $this->log_file;   
              $today = date('Y-m-d');   
              $this->fp = fopen($lfile . '_' . $today, 'a') or exit("Can't open $lfile!");   
          }
      
          public static function get_fp(){
              return $this->fp;
          }
      }  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多