资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php中const和static变量有哪些区别

这篇文章将为大家详细讲解有关php中const和static变量有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比同德网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式同德网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖同德地区。费用合理售后完善,10余年实体公司更值得信赖。

区别:const一旦被定义不可更改,static修饰的变量是可以被更改的。const只可以修饰类的属性,不能修饰类的方法;static可以修饰属性,也可以修饰方法。

PHP中 static 与 const 变量的区别

static变量

1.static静态变量 我们可以对于其 进行修改,但是const变量我们不能对其进行修改
2.static 静态变量可以对其修改权限
3.和java类似,在类的内部,satic 修饰的方法的体内无法访问类的非staic成员变量,只能访问类的staic变量和类的const常量

class staticTest1 {
    var $var1 = "hello";
    public static $var2 = "hellostatic"; //public, protected, private
    const var3 = "helloconst";
    public static function displayDifferent(){
###        echo $this->$var1."
";//不能访问普通变量         echo staticTest1::$var2."
";//可以访问类的静态变量         echo self::var3."
";//不能用$this::var3, self::var3代表当前类,$this::var3代表当前对象     } }

//可以用两种方法调用方法

//第一种,通过对象调用
$test1 = new staticTest1();
echo $test1->displayDifferent();
echo "
"; //第二种,通过类调用 echo staticTest1::displayDifferent(); echo "
";

顺便一提,”::” 对于对象而言只能访问静态变量和方法,还有self只能用”::”来调用当前类的成员

const变量

1.const变量只能修饰成员变量,不能修饰方法
2.不需要加修饰权限
3.因为const变量属于整个类的,不属于某个对象,所以不能通过对象来访问,像$this->constvariable就不允许

class constTest1 {
    var $var1 = "welcome";
//    public const pi = 3.14;//不能加修饰权限
    const pi = 3.14;
//    const function displayDifferent() {//function前不能加const
//        
//    }
   function displayDifferent() {
        echo self::pi."
"; //        echo $this::pi."
";      }     static function displayDifferent2() {         echo self::pi."
"; //        echo $this::pi."
"; //这句话不行。     } }

两种方法调用

//第一种,通过对象调用
$test2 = new constTest1();
echo $test2->displayDifferent();
//第二种,通过类调用
//echo constTest1::displayDifferent();//对象名用"::"只能访问静态变量和方法,所以这个不行

echo constTest1::displayDifferent2();

关于“php中const和static变量有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


网页题目:php中const和static变量有哪些区别
本文来源:http://cdkjz.cn/article/gesesi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220