使用 PHP 泛型对象组织代码

我喜欢使用 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']);

让我知道您对此类课程的看法。您有什么改进建议吗?

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏