8

我正在阅读几本关于 PHP 的书籍并开始着手掌握基础知识。我遇到了“实例化”和“初始化”的词。我找不到解释它们的例子。

PHP中的“实例化”和“初始化”有什么区别?他们的意思是什么 ?如何使用它们?使用它们的目的是什么?

如果可能,请提供一个示例。

4

3 回答 3

16

instantiate是一个类的对象。即你创建一个instance(因此得名)。在代码中:

$obj = new SomeClass();   

initialise是一个变量,这意味着“给它它的初始(因此得名)值”。

$var = "someValue";

事实上,当你instantiate,你也经常initialise它(在构造函数中)。例如:

// this instantiates an object of class 'SomeClass' and 
// initialises it with "somevalue"
$obj = new SomeClass("someValue"); 

实例化是一个面向对象的编程术语。初始化用于所有语言。这两个术语当然不限于 PHP。

于 2013-01-29T16:31:57.310 回答
2
  1. 实例是您为变量分配内存的地方,但可能会或可能不会在其中放置值。
  2. Initialized 是您分配内存并为其存储初始值的位置。

在阅读 Barts Answer 之后添加,面向对象编程通常指的是分配内存的对象的实例,而变量被称为初始化,这意味着分配的内存并分配了一个值。

所以例如

int $intarray=new Array(); // Instance created

尽管

int $intarray= new Array({1,2,3}); // instance created and initialised
于 2013-01-29T16:36:52.467 回答
2

当您在任何面向对象的编程语言中定义一个类时,您创建了一个对象的蓝图,但该对象不存在。但是,当您根据定义的类或蓝图创建该对象的副本时,实际上是实例化了一个类。例如:

//定义一个名为Foo的类

class Foo {
    public $aMemberVar = 'aMemberVar Member Variable';
    public $aFuncName = 'aMemberFunc';


    function aMemberFunc() {
        print 'Inside `aMemberFunc()`';
    }
}

// 创建一个 Foo 类型的对象 * 实例化 Foo

$foo = new Foo;

现在对于初始化,考虑任何变量。当您声明一个变量时,它存在但不包含任何有意义的值。因此,第一次为变量赋值的过程称为初始化。初始化可能在您声明变量时发生,也可能稍后以编程方式进行。

只需声明一个变量:

var $newVariable;

初始化上述变量:

$newVariable = "This is intialisation";

声明并初始化一个变量:

var $intialisedVar = "This var is declared and intialised";

只是为了在初始化中添加另一点,请参见上面类中的变量。实例化对象后,这些变量将自动初始化。

希望这可以帮助。

于 2013-01-29T16:52:10.293 回答