我喜欢使用 PHP 类来使我的代码井然有序且易于维护。我知道它们比简单地使用数组或变量系统消耗更多的内存,但如果内存有问题,我会得到更多的内存。通过以可维护的方式编码来节省时间对我来说比升级服务器更重要。我编写了一个非常通用、灵活的 PHP 类,我在我的 PHP 代码中使用它来获取和设置页面内使用的变量。
PHP 类
/* generic class */
class generic {
var $vars;
//constructor
function generic() { }
// gets a value
function get($var) {
return $this->vars[$var];
}
// sets a key => value
function set($key,$value) {
$this->vars[$key] = $value;
}
// loads a key => value array into the class
function load($array) {
if(is_array($array)) {
foreach($array as $key=>$value) {
$this->vars[$key] = $value;
}
}
}
// empties a specified setting or all of them
function unload($vars = '') {
if($vars) {
if(is_array($vars)) {
foreach($vars as $var) {
unset($this->vars[$var]);
}
}
else {
unset($this->vars[$vars]);
}
}
else {
$this->vars = array();
}
}
/* return the object as an array */
function get_all() {
return $this->vars;
}
}
简单使用
/* simple usage -- just gets and sets */
$person = new generic();
// set sample variables
$person->set('name', 'David');
$person->set('age', '24');
$person->set('occupation', 'Programmer');
// echo sample variables
echo '<strong>Name:</strong> ',$person->get('name'); // returns Name: David
echo '<strong>Age:</strong> ',$person->get('age'); // returns Age: 24
echo '<strong>Job:</strong> ',$person->get('occupation'); // returns Job: Programmer
// erase some variables -- first a single variable, then an array of variables
$person->unload('name');
$person->unload(array('age', 'occupation'));
数据库使用
/* database-related usage */ $query = 'SELECT name, age, occupation FROM users WHERE user_id = 1'; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $user = new generic(); $user->load($row);
// echo sample variables
echo '<strong>Name:</strong> ',$user->get('name'); // returns Name: David
echo '<strong>Age:</strong> ',$user->get('age'); // returns Age: 24
echo '<strong>Job:</strong> ',$user->get('occupation'); // returns Job: Programmer
保存到会话,从会话中检索
$_SESSION['person'] = $person->get_all(); /* and on the next page, you'll retrieve it */ $person = new generic(); $person->load($_SESSION['person']);
让我知道您对此类课程的看法。您有什么改进建议吗?
