精易论坛

标题: PHP - 关于访问类中属性 [打印本页]

作者: dream518    时间: 2020-7-16 20:56
标题: PHP - 关于访问类中属性

关于访问类中属性


<?php

class User
{
    public $name = 'maichael';
    public $age = 30;
    // 访问类中属性
    // 方法1.
    public function class1(){
        // 创建类实例
        $class1 = new user;
        return '姓名:'.$class1->name.'年龄:'.$class1->age;
    }
    // 方法2.
    public function class2(){
        // $this始终与当前类绑定,为PHP系统进行维护和赋值
        return "姓名:{$this->name} 年龄:{$this->age}";
    }

    // 类种方法变量与类属性区别
    // 简单说 该变量需要在多个方法中使用时,创建为类属性
    // 该变量仅在当前方法中使用时,创建为类中方法变量
    public function class3(){
        $city = '成都';
        return "姓名:{$this->name} 年龄:{$this->age} 城市:{$city}";
    }

    // 类方法访问外部成员 函数直接访问 变量用global访问
    public function class4(){
        $func = func();
        global $a;
        return func() . $a;
    }
    // 改进类中方法
    public function class5(string $a , Closure $closure){
            return $closure().$a;
    }

    // 静态方法直接用类调用被所有示例所共享
    static public $nationality = '加拿大';
    static public function class6(){
        return '国籍是'. self::$nationality;
    }

}

$user = new User;
// 方法1
echo $user->class1();
// 输出姓名:maichael年龄:30

// 方法2
echo $user->class2();
// 输出姓名:maichael年龄:30
echo '<hr>';
// 类中变量
echo $user->class3();
// 输出 姓名:maichael 年龄:30 城市:成都

//  类种方法访问外部成员
function func(){
    return 'PHP';
}
$a = '中文网';
echo $user->class4();
// 输出PHP中文网

// 改进类中方法
$func = function (){
    return 'PHP';
};
echo $user->class5($a,$func);

// 静态方法
echo $user->class6();
// 输出国籍是加拿大









欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4