-1

PHP の学習を始めたばかりで、その構文に問題があります。私はphpでクラスを書く方法を学んでおり、Javaに似た構文を使用しました。ただし、そのコンストラクターも通常のメソッドも機能させることができず、その理由がわかりません。

<?php 
class bento {
  public $food;
  public $staple = "rice";
  protected $veggie = "kale";

  public function __construct($fd){
    $food = $fd;
  }

  public function getstaple(){
    return $staple;
  }
}

$chicken=new bento("chick");
echo "<br>".$chicken->food;
echo "<br>".$chicken->staple;
$fd=$chicken->getstaple();
echo "<br>".$fd;
echo "<br>".$chicken->getstaple();
?>

これが私が得た結果です:

//result    

rice


//end of result

基本的に、4 行のうち、1 行しか動作しませんでした ($staple 変数を出力します)。コンストラクターは $food に「ひよこ」の値を割り当てませんでした。getstaple() 関数は値を返しませんでした。

これを機能させる方法がわかりません。

4

4 に答える 4

2

クラスメンバーを参照するには、$this->food または $this->staple を使用する必要があります

class bento {
  public $food;
  public $staple = "rice";
  protected $veggie = "kale";

  public function __construct($fd){
    $this->food = $fd;
  }

  public function getstaple(){
    return $this->staple;
  }
}
于 2013-06-02T03:28:15.597 に答える
0

Java と同じように、"this" キーワードを使用してクラス変数にアクセスする必要があります。php では、次のようにします。

$this->methodName();

また

$this->variableName
于 2013-06-02T03:29:43.947 に答える
0

このキーワードは、現在のクラス内のクラス メンバーにアクセスするために使用されます。変数 $food に何らかの値を割り当てたクラスを作成します。次に、関数内で変数にアクセスしようとしましたが、 $food はクラス変数であり、オブジェクトまたはスコープ解決演算子なしではクラス メンバーにアクセスできません。「これ」には現在のオブジェクト名があります。

于 2016-07-11T07:33:45.663 に答える