2017-11-07 15 views
0

PHP 5.5.38を実行して、ファイルが存在するかどうかを確認するための基本的な静的関数を作成します。PHP 5.5静的関数構文問題

私はさまざまなバリエーションを試しましたが、どこが間違っているのか分かりません。あなたがメソッド内private $fileContents;を持つことはできません、私は取得しています

<?php 

class Configuration { 

    static function getDetails() { 

      private $fileContents; 

     if(file_exists(".\configuration\config.conf")) { 
      $this->fileContents = file_get_contents(".\configuration\config.conf"); 
     } 
     elseif(file_exists("..\configuration\config.conf")) { 
      $this->fileContents = file_get_contents("..\configuration\config.conf"); 
     } 
     else { $this->fileContents = "Config File Not Found"; } 

     // Clear cache 
     clearstatcache(); 

     if(!$config = str_replace(" ", "", $fileContents)) { 
      echo "No configuration file"; 
      die(); 

      return false; 
     } 

     foreach(explode("\n", $config) as $value) { 
      $value = trim($value); 
      if(substr($value, 0, 2) == '//' || substr($value, 0, 2) == '/*' || 
        substr($value, 0, 2) == '#' || $value == "\n" || $value == ""){ 
       continue; 
      } 
      list($k, $v) = explode("=", $value); 
      $configTemp[$k] = $v; 
     } 

     return (object)$configTemp; 
    } 
} 

?> 

エラー出力、

Parse error: syntax error, unexpected 'private' (T_PRIVATE) in line 8 
+2

メソッドの外にプロパティを定義します。 –

+0

静的メソッド内では '$ this'変数を使用できません。 –

+0

うん、両方の上記の仕事。しかし、なぜ私はこれらのことが許されないのか、本当に分かりません。それは「PHP」のことですか? – user2951106

答えて

2

1

クラスプロパティ$fileContentsは、クラスに属しているため、関数外になければなりません。 さらに、静的変数内でprivate変数OR関数を呼び出すべきではありません。