php中静态类和非静态类

静态类:类中含有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是动态语言,每一次这两步都不掉,所以对于只运行一次的类,无所谓谁快谁慢。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、数组 1、数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。 $...
    空谷悠阅读 814评论 4 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 昨日忽闻一同事离世的消息,震惊,惋惜。 生命何其长,明日与未来,遥不知何时来。 生命何其短,明日与归宿,遥不知哪者...
    夜游星人阅读 269评论 2 0
  • 地铁四号线到皇岗仅用30分钟,出地铁口步行5分钟便到达皇岗店,皇岗位于福田区,与香港新界落马洲口岸相对,皇岗店是公...
    保尔感悟阅读 1,339评论 1 2