php面向对象中static静态属性与方法的内存位置分析

yipeiwu_com7年前PHP代码库

本文实例分析了php面向对象中static静态属性与方法的内存位置。分享给大家供大家参考。具体如下:

static静态属性的内存位置——>类,而不是对象。下面做测试来证明一下

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 static public $name = "小妹";
 public $height;
 public function tell(){
 }
}
echo Human:$name;
//不依赖于对象,就能直接访问。因为静态属性的内存位置是在类里,而不是对象。
$p1 = new Human();
$p2 = new Human();
print_r($p1);
echo $p1::$name = "夫人";
//在$p1对象上改变静态属性的值,那$p2对象也会相应的改变。
echo $p2::$name;
?>

输出结果可以看出:

1、echo Human:$name :类声明完毕,就存在static属性,并不依赖于对象。因此,静态属性只有一个(意思是在内存里,存放的位置并不是在对象里;如果在对象里,那实例化一个对象,就相应的有该静态的位置,如height属性);

2、print_r($p1):打印结果只有height属性,而没有name;

3、静态属性的值变化后,所有对象的该属性值都会受到影响。

对于方法,无论是静态的、还是普通的,都是存在于类内存空间中。证明也很简单,new一个对象,print_r(对象)即可。

希望本文所述对大家的php程序设计有所帮助。

相关文章

php实现的一个简单json rpc框架实例

json rpc 是一种以json为消息格式的远程调用服务,它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种远程过程调用可以使用h...

PHP.ini安全配置检测工具pcc简单介绍

PHP.ini安全配置检测工具pcc简单介绍

概述 前一段时间,在工作中遇到了一个开源程序,该程序主要用来检测PHP配置文件中得配置项是否存在安全隐患,并提出相应的配置建议,使PHP程序更加安全。 使用 这个程序使用起来非常简单,大...

linux下为php添加curl扩展的方法

步骤如下: 1. 进到对应扩展目录 # cd /usr/local/src/php-5.2.12/ext/curl 2. 调用phpize程序生成编译配置文件 # /usr/local/...

PHP文件与目录操作示例

本文实例讲述了PHP文件与目录操作。分享给大家供大家参考,具体如下: 文件目录相关函数 <?php // 输出目录中的文件 function outputcurfile...

php实现获取农历(阴历)、节日、节气的类与用法示例

本文实例讲述了php实现获取农历(阴历)、节日、节气的类与用法。分享给大家供大家参考,具体如下: <?php /* * 农历 节气 节日 */ header("Co...