PHP类中静态属性(方法)与非静态属性(方法)用法的区别

static静态:

声明类属性或方法为 static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态属性,但是可以访问其静态方法。
<?php
class Person{ 
    // 定义静态属性 
    public static $country = "中国"; 
    // 定义静态方法 
    public static function myCountry() 
    { 
        //内部访问静态属性
        echo "我是".self::$country."人<br />"; 
    } 
} 

class Student extends Person { 
    function study() 
    { 
        echo "我是". parent::$country."人<br />"; 
    } 
} 
// 访问静态属性值 
echo Person::$country."<br />";  // 输出:中国 
$p1 = new Person(); 
//echo $p1->country;   // 错误写法: 不能通过一个对象来访问其中的静态属性
// 访问静态方法 
Person::myCountry();   // 输出:我是中国人 
// 静态方法也可通过对象访问: 
$p1->myCountry();     // 输出:我是中国人 

// 子类中访问静态属性值 
echo Student::$country."<br />"; // 输出:中国 
$t1 = new Student(); 
$t1->study();    // 输出:我是中国人

注意:

访问静态属性时的语法为:className::$val(这里有一个$符号),访问非静态属性时的语法为:objectName->val
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值