Sınıfında Her fonksiyon one görev ve one görevi sadece yapmalıyım ve uygun adlı olmalıdır.
Sizin selectAllUsers function sadece bunu yapmış gibi, tüm kullanıcıları seçin, olmalıdır
function selectAllUsers() {
$q = "SELECT username FROM ".TBL_USERS."";
return mysql_query($q, $this->connection);
}
Ancak, biz daha sonra kullanabileceğiniz resource, hangi geri dönmek için, bir return anahtar kelime ekledi.
Daha sonra selectAllUsers işlevi returned MySQL kaynak kullanarak kullanıcının bir dizi doldurmak istiyorum generateUserArray adında bir işlevi olabilir.
function generateUserArray() {
$u = array();
$result = $this->selectAllUsers();
while( $row=mysql_fetch_assoc($result)) {
$u[] = $row['username'];
}
return $u;
}
Sorunuzun ilgili daha fazla bilgi, daha fazla cevaplar sizin başarmak için çalışıyoruz ne açısından aldığınız, ya da herhangi bir karışıklığa kadar açık olacak.
Öncelikle, burada benim test tablo (users) benim test veritabanından (login),
mysql> select * from users;
+-----------+-----------+
| Name | Password |
+-----------+-----------+
| aforloney | whatsup |
| pam | qwerty |
+-----------+-----------+
2 rows in set (0.15 sec)
Ve burada MyClass.php benim testi sınıf
class MyClass {
function connect() {
mysql_connect("localhost","root","password");
mysql_select_db("login");
}
function selectAllValues() {
$q = "SELECT * FROM users";
return mysql_query($q);
}
function printAllValues() {
$result = $this->selectAllValues();
while ($row = mysql_fetch_assoc($result)) {
echo $row['Name'] . " and " . $row['Password'] . "<br/>";
}
}
}
Hangi sonra şöyle bir Main sınıftan çağırmak,
class Main {
// other variables...
// __construct is an object's constructor, it's what gets called when
// you create a new Main object
function __construct() {
$myClass = new MyClass();
$myClass->connect();
$myClass->selectAllValues();
$myClass->printAllValues();
}
}
Sonra adlandırılan
$m = new Main(); // will invoke the __construct function
Hangi irade çıktı tarayıcıya,
aforloney and whatsup
pam and qwerty
Sadece başka bir karışıklığı önlemek için bir yan not olarak, benim MyClass ve Main örnek same PHP dosyası içinde iki sınıf vardı. Eğer yukarıdaki kod örnekleri kullanmak ve bir MyClass nesne oluşturmak için denemek için olsaydı, bir hata atmak olacaktır.
Eğer another sınıfında tanımlanmış bir nesne örneğini isteseydim, bir include a> deyimi gerekir.
İki farklı PHP dosyaları ile bu yüzden, ben, gibi pek Main sınıf için benim kodunu değiştirmek istiyorum
<?php
include ('MyClass.php');
class Main {
...
}
?>