Php dönen nesneleri

2 Cevap php

Diye sordum benzer sorular görüyorum ama soruldu daha temel malzeme ile sorun var gibi görünüyor. Php bir değişkeni bildirmek nasıl? Benim belirli sorun ben bir DB tablo okur ve bir nesne olarak kayıt (tek) döndüren bir işlevi olması.

class User{
   public $uid;
   public $name;
   public $status;
}

function GetUserInfo($uid)
{
   // Query DB

   $userObj = new User();

   // convert the result into the User object.

   var_dump($userObj);   
   return $userObj;
}

// In another file I call the above function.

....

$newuser = GetUserInfo($uid);

var_dump($newuser);

Buradaki sorun nedir, ben anlayamıyorum. Esasen var_dump() işlevinde GetUserInfo() iyi çalışır. var_dump() dışında GetUserInfo() çalışmıyorsa çağrısından sonra.

Herhangi bir yardım için teşekkür ederiz.

  • S

2 Cevap

PHP5 bu işleri kullanma:

<pre>
<?php

class User{
   public $uid;
   public $name;
   public $status;
}

function GetUserInfo($uid)
{

   $userObj = new User();
   $userObj->uid=$uid;
   $userObj->name='zaf';
   $userObj->status='guru';
   return $userObj;
}

$newuser = GetUserInfo(1);
var_dump($newuser);

?>
</pre>

object(User)#1 (3) {
  ["uid"]=>
  int(1)
  ["name"]=>
  string(3) "zaf"
  ["status"]=>
  string(4) "guru"
}

Öncelikle User sınıfın yeni bir örneğini oluşturmak. Sonra işlevini çağırın ve $ uid parametresini sağlamak için de kullanabilirsiniz, böylece sorgu shoudl gibi idam olur. Bir eşleme datatable sizin UserObject var ise DB-sonuçları ile dolu alacak.

Şahsen ben statik çağrılarını kullanarak tercih, bu kodu daha okunabilir ve kompakt hale getirir.

Fark:

$userObj = new User();
$user = $userObj->GetUserInfo('your uid');

Veya

$user = User::GetUserInfo('your uid');

Ve ben yanılıyorsam beni düzelt. Garip bir } 4. satırda görmek, ama } işlevinden sonra olması gerektiğini düşünüyorum GetUserInfo($uid).