define定义全局常量:

define('PATH', '/data/home/www');

const也是定义常量, 一般用于类中, 饰成员属性,不可以修饰方法,如下:

class Test{
const PATH = 'c/';//修饰常量
const function test(){//这种方法是错误的,const无法修饰方法
}
}

在类外部调用的时候, 不用加 $ 号:

    echo Test::PATH;
//也可以使用下面的方法调用
$test = new Test();
echo $test::PATH;

在类内部调用的话, 是这样调用:

class Test{
const PATH = 'c/';//修饰常量
public function ass(){
echo $this::PATH.'<br />';
echo self::PATH.'<br />';
}
}

atatic可以修饰属性, 也可修饰方法。

const虽然很好用,但是一经定义就无法修改值了,但是有的时候我们需要一个属于类的属性,但是又可以修改其值,比如统计此类构造了几个对象,这个时候就是使用static的时候了,在static修饰类的成员变量的时候,它的使用方法基本与const一样。并且static修饰的成员变量的值是可以修改的。

但是当static修饰成员方法的时候,使用方法有一点改变,在类的内部,static修饰的方法内部,无法访问当前类的任何普通成员变量。只可以使用当前类的静态成员变量(static ),和类常量(const)。

也就是说, 一个方法定义成static后, 它只能访问static定义的变量或const定义的变量, 其他(如public)定义的属性无法访问。

    class Test{
static public $name='asd';
const π = 3.1415926;
public $age = 10;
public static function lenth($r){
//echo $this->age;//会发生错误,不能访问普通的成员变量
echo Test::$name;
return $r*2*self::π; }
public static function area($r){
return $r*$r*self::π;
}
}

访问static的方法是这种形式:

#Char::Join();
#$test->Join();
#$test::Join();
可以这样调用
    echo '周长:'. Test::lenth(1).'<br/>';
echo '面积:'.Test::area(1).'<br/>';
$per = new Test();
echo $per->lenth(3);

static的性性访问跟const一样。

参考链接:

static变量使用: http://www.cnblogs.com/perl6/p/6436756.html

static方法使用: http://www.cnblogs.com/perl6/p/6437039.html

其他const/static介绍: http://blog.csdn.net/u012368971/article/details/53492555

PHP对象5: define / const /static的更多相关文章

  1. const、define 和 static 的区别

    目录 define.const static define.const 在 C++ 中,const 和 define 都可以用来定义常量.但是这二者之间有很大的区别: define 的作用 用 def ...

  2. const,static,extern,#define

    一.const // 简单定义变量,可以修改变量的值 ; a = ; // const的用法 // 用法一: ; ; // 不允许修改,因为 const 修饰 b/c,指定 b/c 为常量!! // ...

  3. const ,static,inline

    const: 1 定义变量 ,如下写法都可以: TYPE const ValueName = value;                  const TYPE ValueName = value; ...

  4. c++ const static

    const作用: 1.定义常量,可以保护被修饰的东西,防止意外的修改,增强程序的健壮性. const int Max = 100; void f(const int i) { i=10;//error ...

  5. PHP中const,static,public,private,protected的区别

    原文地址:http://small.aiweimeng.top/index.php/archives/54.html const: 定义常量,一般定义后不可改变static: 静态,类名可以访问pub ...

  6. c++中的static,const,const static以及它们的初始化

    const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...

  7. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  8. 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)

    李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽 ...

  9. const ;static;extern的使用与作用

     const                                                                /**      const :常量      const  ...

随机推荐

  1. Spring 学习 5- task 定时任务

    Spring-Task 1.这是网上的: 后面是我自己的配置 Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spri ...

  2. python OCR 图形识别

    1.pip install pyocr 2.pip install PIL 3.安装tesseract-ocr http://jaist.dl.sourceforge.net/project/tess ...

  3. DataTable Excel 导出:

    public static class CSVFileHelper { public static string ToHtmlTable(this DataTable target) { return ...

  4. bzoj4754[JSOI2016]独特的树叶

    这个题....别人写得怎么都....那么短啊? 我怎么....WA了好几次啊....怎么去loj扒了数据才调出来啊? 这个算法...怎么我还是不知道对不对啊 怎么回事啊怎么回事啊怎么回事啊? 请无视上 ...

  5. 转发---[沧海拾遗]java并发之CountDownLatch、Semaphore和CyclicBarrier

    JAVA并发包中有三个类用于同步一批线程的行为,分别是CountDownLatch.Semaphore和CyclicBarrier. CountDownLatch CountDownLatch是一个计 ...

  6. BZOJ4976 宝石镶嵌(动态规划)

    显然被留下的宝石应该贡献至少一位,否则就可以扔掉.所以如果n-k>=logw,直接输出所有数的or.现在n变得和k同阶了.于是设f[i][j]为前i个数or为j时至少选几个数,转移显然.当然可以 ...

  7. P4005 小 Y 和地铁

    题目描述 小 Y 是一个爱好旅行的 OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有 换乘站 . ...

  8. QString::QString 中文乱码

    QString::QString 中文乱码 处理方法: 1. QString str = QString::fromLocal8Bit("中文"); // vs2008 vs200 ...

  9. BZOJ 2959: 长跑 解题报告

    2959: 长跑 Description 某校开展了同学们喜闻乐见的阳光长跑活动.为了能"为祖国健康工作五十年",同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑 ...

  10. 【bzoj3669】魔法森林

    Portal-->bzoj3669 Solution ​  愉悦智力康复ing ​​  这题的话有两个比较关键的地方 ​​  首先是答案肯定是原图的某个生成树上的一条路径,那么我们考虑怎么来找这 ...