PHP您可以在不同的类中使用相同的属性吗?

时间:2019-03-30 15:37:51

标签: php class oop properties

我是oop php的新手,我只是想知道您是否可以在多个类中使用相同的属性。例如:

  var sale_product = "";
sale_product = outputData.sale_price;
if (sale_product !== "") {
    $("#Editsale").prop("checked", true);
    $("#EditsalePrice").show();
    modal.find("input#Editsale_price").val(outputData.sale_price);
} else if (sale_product == "") {
    $("#Editsale").prop("checked", false);
    $("#EditsalePrice").hide();
}

我是否可以使用该代码使用第二类(支票)中第一类(银行)或第三类(保存)中的所有公共属性?

2 个答案:

答案 0 :(得分:1)

如果您在其他类中再次定义它们,那么从技术上讲可以。但是它们是单独的对象,因此它们将不会存储相同的值。

就像拥有汽车,球和书。它们都具有“颜色”属性,但是每个值都不相同,更改其中任何一个都不会影响其他值。

class Car {
    public $color;
}

class Ball {
    public $color;
}

class Book {
    public $color;
}

$car = new Car;
$car->color = "red";

$ball = new Ball;
$ball->color = "blue";

// The color for the car and the ball are still red and blue after this.
$book = new Book;
$book->color = "green";

但是,我还要补充一点,您似乎对OOP的总体工作方式有误解。这些“类”本身不是对象,而是对象对房屋而言是什么蓝图。

创建类时,它只是列出该类的对象(或实例)的外观图。

调用new MyClass时,实际上会将该类用作该蓝图,并根据该蓝图创建一个新对象。

因此,从这个意义上讲,如果您有一个名为Car的类,则可以创建多个Car。每个都有自己的速度,颜色等。

class Car {
    public $speed;
    public $color;
}

$corvette = new Car;
$corvette->speed = 500;
$corvette->color = 'red';

$civic = new Car;
$civic->speed = 20;
$civic->color = 'rust';

这些汽车中的每一辆现在都彼此独立存在,但是它们是使用相同的Class(或可以说是蓝图)创建的。


如果您要尝试创建一个共享相同属性的类,以便可以创建具有这些属性的其他类,则可以使用继承:

class Car {
    public $speed;
}

class ColoredCar extends Car {
    public $color;
}

$corvette = new ColoredCar;
$corvette->speed = 100;
$corvette->color = 'red';

答案 1 :(得分:1)

您必须使用oop继承。 您可以在其他类别中扩展一个类别并使用其功能。例如。

class save extends check {}