PHP - “实例化”和“初始化”之间有什么区别?

时间:2013-01-29 16:30:21

标签: php variables object

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

PHP中“instantiated”和“initialised”有什么区别?他们的意思是什么 ?怎么用?使用它们的目的是什么?

尽可能提供示例。

3 个答案:

答案 0 :(得分:15)

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。

答案 1 :(得分:2)

  1. 实例是您为变量分配内存的地方,但可能会或可能没有在那里放置值。
  2. 已初始化是您分配内存以及为其存储初始值的地方。
  3. 在阅读Barts之后添加答案回答面向对象编程通常是指对象被分配内存的实例,而变量据说是初始化的,这意味着分配了内存并分配了一个值。

    所以例如

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

    ,而

    int $intarray= new Array({1,2,3}); // instance created and initialised
    

答案 2 :(得分:2)

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

//定义一个名为Foo的类

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


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

//创建Foo * Instantiate Foo

类型的对象
$foo = new Foo;

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

只需声明一个变量:

var $newVariable;

初始化上述变量:

$newVariable = "This is intialisation";

声明并初始化变量:

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

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

希望这有帮助。