当我在 PHP 中实例化多个对象时,每个对象都有自己的方法还是只会实例化 1 个方法?
例子:
Class SimpleClass {
public $attr = 'some value';
public function set_attr($val){
$this->attr = $val ;
}
}
$sc1 = new SimpleClass();
$sc2 = new SimpleClass();
$sc1->set_attr('new value1');
$sc2->set_attr('new value2');
在这个例子中,我想知道每个 SimpleClass 对象在内存中是否有自己的方法 set_attr() 或者是否只有一个。在 JavaScript 中,可以使用原型对象以这种方式做到这一点。我想知道它是否也是这样的其他语言。
只是为了澄清:在 JavaScript 中,我可以创建一个基于原型对象的方法:
SimpleClass = function() { this.attr = 'old val'; };
SimpleClass.prototype.set_attr = function(val) { this.attr = val ; };
var sc1 = new SimpleClass();
var sc2 = new SimpleClass();
sc1.set_attr('new val');
sc2.set_attr('new val');
在此示例中,每个对象 sc1 和 sc2 都将分配一个变量,但只有 1 个方法 ( set_attr() ) 将分配给 SimpleClass 原型对象。