nasıl bu işlevi bir sınıf yapabilirim?

2 Cevap php

Ben 'sınıflar' kodumu almadan uzun süre işlevlerini oluşturma oldum.

Ben iyi bir örnek üzerinden öğrenmek ve ben sadece bu yüzden ben yok bir şey biliyorum bir şey karşılaştırabilirsiniz bir sınıfa bu basit işlevi dönüştürmek istedim ...

Aşağıdaki işlevi atın:

function affiliateName($affiliateID) {

$sql = 'SELECT * FROM affiliates WHERE uID="' . $affiliateID . '" ';

$res = mysql_query($sql);

$row = mysql_fetch_array($res);

$affiliateName = $row['firstName'] . ' ' . $row['lastName'];

return $affiliateName;

}

Ve nasıl bir sınıf olduğunu yapmak istiyorsunuz?

2 Cevap

Umarım yardımcı olur

<?php
class affiliate{

  // fields or properties
  public $name = '';
  public $id = 0;

  // constructor
  public function affiliate($id = 0){
     $this->set_ID($id);
  }

  // methods
  public function set_ID($id){
    return $this->id = $id;
  }

  public function get_Name(){

    if($this->name != ""){
      $sql = 'SELECT * FROM affiliates WHERE uID="' . $this->id . '" ';
      $res = mysql_query($sql);
      $row = mysql_fetch_array($res);
      return $this->name = $row['firstName'] . ' ' . $row['lastName'];
    }else{
      return $this->name;
    }
  }
}

// Example:

  $currentAffiliate = new affiliate(153);
  echo $currentAffiliate->name;
?>

Kullanmak için basit olduğu gibi aşağıdaki tasarım tercih:

class affiliates {
    static function load($id) {
        return new self(intval($id));
    }
    private function __construct($id) {
        $query = "SELECT * FROM affiliates WHERE id = " . intval($id);
        $result = mysql_query($query);
        // TODO: make sure query worked
        foreach(mysql_fetch_assoc($result) as $field => $value)
            $this->$field = $value;
    }
    // composite fields - made by combining and/or re-formatting other fields
    function qualifiedName() {
        return $this->firstName . ' ' . $this->lastName;
    }
    function properName() {
        return $this->lastName . ', ' . $this->firstName;
    }
}

$a = affiliates::load(22);
// all db fields are available as properties:
echo $a->id; // 22
echo $a->firstName; // Fred
echo $a->lastName; // Smith
// composite fields are methods
echo $a->qualifiedName(); // Fred Smith
echo $a->properName(); // Smith, Fred
// to get a single field from a particular person
echo affiliates::load(72)->qualifiedName();