PHP 5.5静态函数语法问题
运行PHP5.5.38,生成一个基本的静态函数来检查文件是否存在 我尝试了很多不同的变体,但看不出哪里出了问题PHP 5.5静态函数语法问题,php,web,Php,Web,运行PHP5.5.38,生成一个基本的静态函数来检查文件是否存在 我尝试了很多不同的变体,但看不出哪里出了问题 <?php class Configuration { static function getDetails() { private $fileContents; if(file_exists(".\configuration\config.conf")) { $this->fileContent
<?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;
}
}
?>
您不能有
private$fileContents
方法内部。您不能拥有私有$fileContents
在方法内部。类属性$fileContents
必须在函数外部,因为它属于类。
此外,不应在静态变量或函数内调用私有变量或函数。类属性
$fileContents
必须在函数外,因为它属于类。
此外,您不应该在静态方法内调用私有变量或函数。在方法外定义属性,而不是在方法内定义属性。您也不能在静态方法内使用
$this
变量。是的,上述两种方法都有效。但我真的不明白为什么这些事情是不允许的。对象属性不是方法的一部分,它们是类的一部分,所以它们是在类中定义的,而不是在方法中定义的。。。这看起来很合乎逻辑,这是一个面向对象的东西,不是PHP的东西是的,而是Java和其他语言,你可以用方法声明变量,因此有方法或函数属性。假设我有一个包含大量函数的静态数学类,每个函数都可以访问它们?在方法外部定义属性,而不是在方法内部定义属性。在静态方法内部不能使用$this
变量。是的,以上两种方法都有效。但我真的不明白为什么这些事情是不允许的。对象属性不是方法的一部分,它们是类的一部分,所以它们是在类中定义的,而不是在方法中定义的。。。这看起来很合乎逻辑,这是一个面向对象的东西,不是PHP的东西是的,而是Java和其他语言,你可以用方法声明变量,因此有方法或函数属性。假设我有一个静态数学类,有很多函数,每个函数都可以访问它们?
Parse error: syntax error, unexpected 'private' (T_PRIVATE) in line 8