我喜欢使用 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']);
让我知道您对此类课程的看法。您有什么改进建议吗?