首页 >后端开发 >php教程 >php 静态类与非静态类

php 静态类与非静态类

WBOY
WBOY原创
2016-07-29 09:13:23822浏览

静态类:类中含有static定义的静态属性或方法的类

静态类访问方法:

1、,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::
Car::getName(); 
2、外部访问公共属性或方法:
$car->speed;$car->speedUp();
3、内部访问公共属性和方法:
$this->speed;$this->speedUp();
if(empty($articleclass_id)) $this->showapp(array('msg'=>'错误的操作'));
4、外部访问静态属性或方法:
Car::getName();Car::$price;
$articleclass_id = SUtil::getStr($_GET['id'], 'int');

5、内部访问静态属性

self::$price;

6、继承类时,子类内部调用父类静态属性

parent::$price;

class Controller_article extends Controller_basepage {
    function __construct() {
        parent::__construct();
    }
}

7、 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。

8、使用$object->… 和使用class::… 都有什么区别: 
1. 使用$object->… ,需要执行构造函数创建对象; 
2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象; 
3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。

为什么要有静态类????????

 --------静态的变量或者是函数是保存的静态内存中的,只有到程序结束时才会被释放,那他是什么时候赋值的呢

是在编译的时候,动态类是在程序运行的时候动态分配的。

如果类中调用一次,静态类在编译的时候需要多做工作,动态类在执行的时候需要多做工作,然而php是动态语言,每一次这两步都不掉,所以对于只运行一次的类,无所谓谁快谁慢。

但是如果一个类在程序当中要多次调用就不一样了,静态类是编译的时候就赋值了,程序之后的运行都可以直接调用过来,而不用动态的分配内存了,就节约了时间,这就是为什么静态类比动态类快的原因(前提是调用多次记得)。

以上就介绍了php 静态类与非静态类,包括了静态方法,静态属性方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn