私はPHP OOPで新しく、これで誰かが私を助けてくれるのだろうかと思っていました。PHPのクラスプロパティへのアクセスOOP
データベースからデータを返す1つのメソッドを持つ基本クラスがあります。現在、関数内のすべてを表示するメソッドを呼び出しています。ここで
は私のクラスの定義である:ここで
class Products{
//properties
public $familyName = "";
public $familyProduct = "";
//Methods
public function getFamily($catId){
global $conn;
$sql = "SELECT * FROM product_family WHERE catID = '$catId'";
$result = $conn->query($sql);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo "<li>".$row['familyName']."</li>";
echo "<li>".$row['familyProduct']."</li>";
}
}
}
}
は、私はメソッドを呼び出す方法です:
$Products = new Products;
$Products->getFamily(4);
これは(どのように私はデータベースから来た各データを割り当てることができ、しかし、作品ex familyName、familyProduct)をクラス実装内の変数に格納し、必要に応じて個別にアクセスします。
$Products = new Products;
$Products->familyName;
$Products->familyProduct;
私は空のプロパティを持っていますが、ループから来ている値をどのように割り当てることができるのかよく分かりません。
ありがとう、
あなた 'getFamily'関数内でクラスのプロパティにアクセスするためには、(_this_オブジェクト、のように)、' $ this'を使用する必要があります: 'ます$ this-> familyName'はそれの値を返します。 、 '$ this-> familyName = 'test''はその値を設定します。 – WOUNDEDStevenJones
$ this-> familyName = $ row ['familyName']? – Plotisateur
さらに、 '$ products = new Products();'のようなオブジェクトを作成するときに自動的に実行される '__construct()'関数(Classコンストラクタと呼ばれる)を追加することもできます。したがって、情報を取得するDBクエリを持つコンストラクタがある場合、クラス内で '$ this->'を使用して値を設定することができます。次に '$ products-> familyName'を使用できます(または、 getterを使用して値を取得するために '$ products-> getFamilyName();'を使用してください – WOUNDEDStevenJones