Php 不知道为什么我的功能不工作

Php 不知道为什么我的功能不工作,php,class,methods,Php,Class,Methods,我是php新手,正在尝试使用函数和类。我不知道为什么我不能实现get和set方法。如果你能看一看,让我知道我的错误在哪里,我将不胜感激 非常感谢: <?php class fileHandling { function __construct(){} public $FName="red"; public function setFName($FName){$this->FName = $FName;} public function getFName(){if($FName ==

我是php新手,正在尝试使用函数和类。我不知道为什么我不能实现get和set方法。如果你能看一看,让我知道我的错误在哪里,我将不胜感激

非常感谢:

<?php
class fileHandling
{
function __construct(){}

public $FName="red";
public function setFName($FName){$this->FName = $FName;}
public function getFName(){if($FName == null) return "";else return $FName;}

function toString(){return "file name: ".$this->getFName();}
}


$fh = new fileHandling();
echo($fh->toString()."<br>");
$fh->setFName("purple"."<br>");
echo("color is: ".$fh->Fname."<br>");
echo($fh->getFName());
$fh->setFName("orange"."<br>");
echo("color is: ".$fh->Fname."<br>");
echo($fh->getFName());
echo($fh->toString());
?>

getFName缺少
$this

public function getFName(){
  if($this->FName == null) return "";
  else return $this->FName;
}

getFName缺少
$this

public function getFName(){
  if($this->FName == null) return "";
  else return $this->FName;
}
一切都很好,但你应该用
$this->FName
替换
$FName


一切都很好,但您应该用
$this->FName

替换
$FName
,这里有一些问题:

  • FName
    !==
    Fname
    :所以
    $fh->Fname
    应该是
    $fh->Fname
  • 在getter方法中,您需要
    $this->FName
    而不是
    $FName

    • 这里有几个问题:

      • FName
        !==
        Fname
        :所以
        $fh->Fname
        应该是
        $fh->Fname
      • 在getter方法中,您需要
        $this->FName
        而不是
        $FName

      开发时会出现警告,PHP会提醒您该问题。另一方面,
      if($FName==null)
      并没有完全按照您的想法执行——您可以用
      return(string)$this->FName替换主体。开发时会出现警告,PHP会提醒您该问题。另一方面,
      if($FName==null)
      并没有完全按照您的想法执行——您可以用
      return(string)$this->FName替换主体
      。我很难找到小写的
      Fname
      ,但你是对的。我想投赞成票,但今天我已经投完了所有的票。因此,它的价值是+1;-)我很难找到小写的
      Fname
      ,但你是对的。我想投赞成票,但今天我已经投完了所有的票。因此,它的价值是+1;-)这可能是一个愚蠢的问题,但如果我使用java,它的类型是`public String getFName(){if(FName==null)return”“;else return FName;}`来完成某些事情。为什么我需要包含关键字this?这可能是一个愚蠢的问题,但如果我使用java,它的类型是` public String getFName(){if(FName==null)return”“;else return FName;}`来做一些精确的事情。为什么我需要包含关键字this?