2009-09-09 3 views
1

Я слишком долго создавал функции, не переведя свой код в «классы».Как сделать эту функцию классом?

Я хорошо учиться через пример, и я просто хотел, чтобы преобразовать эту простую функцию в классе, так что я могу сравнить то, что я знаю, с чем-то я не ...

Возьмите следующую функцию:

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; 

} 

И как бы я сделал этот класс?

+0

Вы, предполагаете, чтобы создать определение класса? не так ли? – adatapost

ответ

4
<?php 
class AffiliateModel 
{ 
    public function first($id) 
    { 
     $sql = 'SELECT *, CONCAT(firstName, ' ', lastName) AS qualifiedName FROM affiliates WHERE uID="' . $id . '" LIMIT 1'; 
     $res = mysql_query($sql); 

     return mysql_fetch_object($res); 
    } 
} 

$model = new AffiliateModel(); 
$a = $model->first($id); 
echo $a->qualifiedName; 
?> 
2

Надеется, что это помогает

<?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; 
?> 
+0

без проблем! вообще! – mauris

1

Я предпочитаю следующий дизайн, как это самое простой в использовании:

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(); 
Смежные вопросы