1、对象的静态属性或方法
2、类中的常量:
static_objj.php
<?phpnamespace _1102;
/**存在的意义: 若一个对象只用一次?没有必要再实例化 或是多个对象之间,需要共享一些属性或方法*/class static_obj{ public $attr= "原始访问"; public function getAttr() { return $this->attr; } public static $attrs='静态属性';//静态属性 public static function static_fun($pram1="")//静态方法 { /* static_obj::$attrs="$pram1";//这样,就给$attrs 赋值了 return "静态方法".static_obj::$attrs; */ //优化:用static_obj::$attrs 或static_obj::static_func(); //这里的static_obj,若有一天改变了类名,那么,相关的static_obj就都得改变; //所以,这样子就会存在维护问题,于是就用self 代替 self::$attrs="$pram1";//给attrs赋值 return "静态方法".self::$attrs;//这样,即使改变了类名,里面的self都不用改 }}//原始访问$obj= new static_obj();//实例化echo $obj->getAttr();//获致实例化的属性或方法echo "<hr>";//静态属性或方法的访问////:: 双冒号作用是,范围解析符,一般用来解析类同的 属性或方法 echo static_obj::$attrs; echo "<hr>"; echo static_obj::static_fun();
//静态属性初始化,及赋值: echo "<hr>"; echo static_obj::static_fun('赋值1'); echo "<hr>"; echo static_obj::$attrs;
class_changliang.php
<?phpnamespace _1102;//define(name, value),定义常量define('USERNAME', 'username');$username="AAA";echo USERNAME;echo $username;
function username($value=''){ echo $username;}username();function username1($value=''){ echo USERNAME;}username1();
/*** */class ClassChangLiang { const NAME='China'; //类常量 必初始化,不能被重新赋值 // public static $attr='属性'; //可以不初始化,如:public static $attr;
}echo "<hr>";echo ClassChangLiang::NAME;echo "<hr>";echo ClassChangLiang::$attr;