静态方法中可以调用非静态属性么?

来源:2-6 PHP类和对象之Static静态关键字

月下风物语

2016-12-02 10:57

class Car {

    private static $speed = 10;   

    public $name = '汽车';//这里多了一个共有属性

    public function getSpeed() {

        return self::$speed;

    }   

    //在这里定义一个静态方法,实现速度累加10

    public static function speedUp(){

        //这里能调用上面共有属性name么

        return self::$speed += 10;   

    }

}

比如这个案例,我在里面添加一个共有属性$name,我在静态方法中能调用这个共有属性么,如果可以,怎么调用?

写回答 关注

3回答

  • Miracle_H
    2016-12-02 12:00:11
    已采纳


    public static function speedUp(){

        $car = new Car();

        echo $car->name;

        return self::$speed += 10;

    }

    这样不就调用了$name

    月下风物语 回复Miracl...

    这节调的时候直接用的Car::speedUp(),与实例不实例化没关系。你确实调了,谢谢你的思路\* ——*/

    2016-12-02 12:17:52

    共 9 条回复 >

  • 精慕门2512662
    2016-12-02 11:55:30

    $this->name 

    月下风物语

    静态方法中不允许$this伪变量

    2016-12-02 11:57:20

    共 1 条回复 >

  • 慕码人4138064
    2016-12-02 11:48:54

    肯定可以

    月下风物语

    怎么调,举个栗子

    2016-12-02 11:49:41

    共 1 条回复 >

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181906 学习 · 2654 问题

查看课程

相似问题