私は非常に簡単だと思っていたことをやろうとしていますが、PHPのOOPに比較的新しいので少し問題があります。子クラスの保護された変数の値を変更する
<?php
class MyClass
{
protected $variable = 'DEFAULT';
function __construct($newVariable)
{
$this->variable = $newVariable;
echo $this->variable;
}
}
class OtherClass extends MyClass
{
function __construct()
{
echo $this->variable;
}
}
$foo = new MyClass('MODIFIED'); // Output : MODIFIED
$bar = new OtherClass(); // Output : DEFAULT
?>
は、私は別のスレッドや多くのウェブサイトを検索するが、私は多分子クラスに$変数の再定義値を渡すことができるか発見していない:
は、ここに私のコードです。 誰かが私を導くことができますか?方法があれば。
ありがとうございます。私は、フォームを作成するクラスを持っている 、そのクラスに我々が何であるかエンバイロメント内の関数を伝えるいくつかの変数があります:もし、実際に私はこの問題を抱えているスクリプトの中で何が起こっているのかを明確化
EDITそれは多言語形式かどうか、私は単純なフォームまたは構造化されたもの、そのようなパラメータが必要な場合。 これらの環境変数のいくつかは、その関数によってクラスの実行によって変更されます。
私のページの必要性のため、「選択」フィールドの作成専用の子クラスがあります。メインクラスのコア関数を継承してフィールドなどを作成しますが、子クラスにはさらにいくつかのパラメータが必要です。 これは、メインクラスのenvironnementパラメータを、選択されたクラスが継承したままの状態であることを示します。
私はこれを入力しているので、私はそれを行う正しい方法ではないかもしれないことに気づいています。私のコードを見ると、そうする別の方法があると思います。私のコードでは、私はそれが1つだけである必要がある2つのオブジェクトを持っていますが、実際にどのように配置するのかは本当にわかりません。
変数を再定義するのではなく、親コンストラクタで変数を設定するだけです。あなたが必要としているものをあなたに呼んでください。 – hakre
ここでは、OOPは関数とそのデフォルト変数の単なる継承です。それは魔法のように2つのオブジェクトをつなぎ合わせるのではない。悲しいことに。 –