繁体   English   中英

php oop如何使用属性和方法组成一个类

[英]php oop how to work with properties and methods form a class

我是php oop的新手,我对类有一些了解,但是我仍然不了解如何在创建的Object中使用其属性和方法。 我需要了解下面报告的代码是否正确,如果不正确,我做错了什么。

我假设我有一个可以为我做任何事情的班级。 我们称之为Class myClass {....}

现在,我从中创建一个对象,并尝试使用其方法和属性,如下所示:-

$myObject = new myClass;

$myObject->checkSpeedLight(); // method for checking the speed

if($this->lightSpeed > 10000) echo (“slow down!”); // property defined with a value of 10000

if($this->lightSpeed =< 10000) echo (“Speed up!);

$myObject->keepLightingUp();

$myObject->sleep();

echo ("ligth up");

我知道这没有任何意义,这只是一个例子。 我需要了解的是书写方式是否正确; 任何帮助表示赞赏。

$this是脱离上下文的,只能在类定义中使用(在内部方法等内部)。

在函数之外,我们使用$myObject->lightspeed

另外,我假设您正在使用checkLightSpeed()方法设置lightspeed属性。

编辑!
此外,拥有吸气剂和吸气剂方法被认为是一种好习惯。 关键是不要直接访问您的属性,而要通过抽象层方法。

class MyClass {
    private $property = "Hello World!";

    public function getProperty() {
        return $this->property;
    }
}

$obj = new MyClass();
$obj->getProperty();

这样,您可以更好地控制查看属性的方式,方式和时间(例如,可以要求数据库连接才能查看属性或限制访问权限)。

还要注意,该属性本身被声明为private ,因此限制了从类的外部直接访问。


例如,这是我用PHP制作的SpeedOfLight类:

<?php

    /**
     * @class                  SpeedOfLight
     *
     * @property $speedOfLight private
     *
     */
    class SpeedOfLight {

        private $speedOfLight;

        public function checkSpeedOfLight() {
            $this->speedOfLight = 300000000;
        }

        public function getSpeedOfLight() {
            return $this->speedOfLight;
        }

    }

    #Begin testing!
    $obj = new SpeedOfLight();
    $obj->checkSpeedOfLight();

    if ($obj->getSpeedOfLight() <= 100000000) {
        echo "Speed up!";
    }
    elseif ($obj->getSpeedOfLight() >= 350000000) {
        echo "Slow down!";
    }
    else {
        echo "Just right!";
    }

(我不知道keepLightSpeed()sleep()是什么,因此我省略了它们,但这是关键部分)。


除此之外,你还不错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM