Re: php class类用法总结

添加时间:13-07-05 所属分类:PHP工具与代码
  三、类的属性:
有两种方法对类的属性赋值或取值。
1、使用公共作用域public关键词。
2、使用__set()和__get()来分别赋值和取值,前者称为设置方法(setter)或修改方法(mutator),后者称为访问方法(accessor)或获取方法(getter)。建议使用这种方法:优点:
A、可在__set()统一进行数据验证。
B、便于统一管理属性。
注意:
第一:__set()和__get()只对私有属性起作用,对于用public定义的属性,它们两个都懒理搭理,如下:
class test{
protected $a=9,$b=2,$c;
public $d;
function __set($n,$v) { $this->$n = $v+2; }
function __get($name) { return $this->$name+2; }
}
$a = new test();
$a->b =5; echo “<br />”; echo $a->b;
实例只对$a,$b,$c的设置会经过__set和__get过滤与返回,对于$d,就不会起作用。如$a->d=5,再返回还是5。
第二:__set($n,$v)要带两个参数。而__get($n)只能有一个参数。实例:
class test{
private $a=5,$b=6,$c;
function __set($n,$v)
{
if($n==’a'&&$n>0)
$this->$n = $v;
else
$this->$n = $v+2;
}
function __get($name)
{
return $this->$name; //如果改为return $this->$name + $this->addab(); 如调用a的值,实际返回的是a+a+b的值。默认为5+5+6=16。
}
function addab()
{ return $this->a + $this->b; }
}
$e=new test();
$e->a = 11; //注意写法:类的内部用$this->$n即变量的写法,但外部实例要用$e->a的方式。
$e->b = 12; //get 14
$e->k = 22;

类的属性可自由扩展,如上例的k,不管是否用__set,当一个实例建立起来后,可以用$e->newProperty = xx;直接来创造一个属性,但不建议这么做。

四、类的方法:
理解成类当中的函数即可。
调用:
1、内部调用:可使用$this->Fanname();或$this->addab()或test::addab();
2、实例化调用时,用$e->addab();即可。对于在该方法中没有使用$this关键字的,如上例中的:
function addab() { return $this->a+$this->b; }
改为: function addab() { return 25; }那在在外部实例调用该方法,也可用“$e::addab();”或“test::addab();”
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

前篇:一篇入门的php Class 文章 后篇:为救病儿63岁母亲沿街乞讨 济南市民爱心捐款
发表我的评论


推荐文章   《给女儿的一封信》   夏季热门中药花茶组方搭配   “儿子,千万别把老婆当亲人!”爸爸的...   高温来袭去哪儿避暑? 六处人防纳凉点成...   多地出现新型网络骗局:以美女形象卖“...
随机文章   PHP文件的加解密和混淆   php隐藏数据,MD5加密,截取字符串   PHP读取文本文件时汉字显示乱码的处理方...   PHP读取TXT中文乱码的解决方式   轻量级CMS
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555