• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php5中const、define跟static

php 搞代码 4年前 (2022-01-24) 18次浏览 已收录 0个评论

php5中const、define和static
一、const
在编程中,我们一般用常量来定义那些在运行时不能被改变的常数值,下面让我们来看看php中的const吧,这个东西其 实没有什么好说的,只是为了知识的完善而随便说下吧。在定义一个常量的时候我们可以使用const来修饰这个常量,使用const修饰的常量更其它的常量有点不同的地方就是:常量名前不要使用”$”,切记!当然这个常量值也是不能修改的,一旦定义就不能程序的任何地方进行“人为”的修改。这跟使用 define定义是一样,还有就是使用const来定义当然也遵守其它常量的命名规则――使用大字的字母。

看个小例子吧:
<?php
class say_const{
const CHARSET = “中国”;
public function say_hello(){
echo slef::CHARSET;
}
}
$const1 = new say_const();
$const1->say_hello();

作为其它要说明的,请看下面这个扩展阅读:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量;
常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量.
可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表.
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 “CONSTANT”),此时将发出一个 E_NOTICE 级的错误.

PHP 的“魔术常量”.
__LINE__
__FILE__
__FUNCTION__
__CLASS__
__METHOD__

在面向对象中
接口:
1 不能够定义静态变量在类的 成员变量(常量除外)
2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用
3 不能使用parent::YOUCONST的方式调用接口的常量

类:
1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问
2 const定义的变量,在子类中可以被覆盖
3 当然在类中可以定义静态成员变量了

二、define
什么是自定义常量?

所谓自定义常量,就是指用一个字符标识来代表另外一个对象,这个对象可以是一个数值,一个字符串,一个布尔值等等。它的定义与变量有着许多相似之处。只有一点不一样,那就是变量的值在程序运行过程中可以任意更改,而自定义常量一旦定义下来后,在程序运行中就再也不能修改了。
定义方式如下:
define(“YEAR”,”2012″);
使用define关键字来将2012这个字符串绑定到YEAR上来,以后在程序当中出现YEAR的地方就用2012来代替。一般情况下,我们定义常量时,常量名都使用大写字母。例,
<?php
define(“YEAR”,”2012″);
define(“MONTH”,”12″);
define(“DATE”,”21″);
define(“THING”,”Doomsday”);
echo YEAR.”-“.MONTH.”-“.DATE.” “.THING;
?>

三、static
static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护。类的静态变量,非常/本文来源gaodai#ma#com搞*!代#%^码网%搞代gaodaima码类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数。类的静态方法能访问类的静态的属性。另外说明的是,static的成员,必须使用self来访问,使用this会出错。

static变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值。
例如:

    <?php            class Counter      {       private static $count = 0;//定义一个静态属性       const VERSION = 2.0;//定义一个常量             //构造函数       function __construct()       {        self::$count++;       }              //析构函数       function __destruct()       {        self::$count--;       }              //定义一个静态的方法       static function getCount()       {        return self::$count;       }      }            //创建一个实例      $c = new Counter();            //执行打印      print( Counter::getCount(). "<br>\n" ); //使用直接输入类名来访问静态方法Counter::getCount            //打印类的版本      print( "Version useed: " .Counter::VERSION. "<br>\n" );            ?>  

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php5中const、define跟static

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址