PHP码农进化史2
1.是否可以在类的外部访问一个属性是由访问修饰符来确定的。
2.从类的外部直接访问类的属性是糟糕的想法。面向对象的一个方法就是鼓励封装。在PHP中,我们一般通过__get()与__set()函数来实现对
属性的访问.如果不直接访问一个类的属性而是编写访问函数,那么可以通过一段代码执行所有访问。最初的访问函数如下所示:
class classname {
public $attribute;
function __get($name) {
return $this->$name;
}
function __set($name, $value){
$this->$name = $value;
}
}
3.此访问器函数的原理就是这样:只使用一段代码来访问特定属性。由于只有一个入口,就可以对要保存的数据进行检查,可以确保保存的数
据是有意义的数据。例如:
function _set ($name, $value) {
if( ($name == "attribute") && ($value >= 0) && ($value <= 100) ) {
$this->attribute = $value;
}
}
4.通过单一的访问入口,可以方便地改变潜在的程序实现。如果由于某种原因,需要改变属性$attribute的保存方式,访问器函数允许我们只
要修改一处代码,就可以完成此工作。
5.__get(),__set(),__isset(),__unset().
一般来说,总是把类的属性定义为private,这样更复合现实逻辑。
__get(),__set():用来获取和赋值其属性.他们不是默认存在的,而是我们手工添加进去的。
__isset(),__unset():来检查属性和删除属性。
6.__get()与__set(),__isset()与__unset()的一般添加方法。
//__get()方法用来获取私有属性.
private function __get($property_name) {
if (isset($this -> property_name)) {
return($this -> $property_name);
} else {
return(NULL);
}
}
//__set()方法设置私有属性
private function __set($property_name,$value) {
$this -> $property_name = $value;
}
//__isset()方法可以设为私有
private function __isset($property_name) {
相关文档:
如果只是一个数据库的话,我们一般习惯这样写:mysql_select_db("guestbook");
mysql_query('select * from users');
但是如果是连接多个mysql,有可能出现同名的数据库,或者数据库中出现同名的表,所以就必须用完整的形式了,如下代码:
<?php
$link1 = mysql_connect('localhost1','root','root');
mysql ......
<?
require ("config.php3");
?>
<?
if($submit)
{
//echo $action;
//if($action=='update') &nb ......
1、前言
分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原 ......
卸载Mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本, ......
编写关于 PHP 的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使用文本编辑器,比如 Microsoft® Windows® 上的记事本、Emacs 或者 Vim。
我提到的这些文本编辑器(以及我没提到)都是很不错的 —— 我不想讨论 ......