【问题标题】:PHP - What is the difference between “instantiated” and “initialised”?PHP - “实例化”和“初始化”有什么区别?
【发布时间】:2013-01-13 07:06:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: php variables object


    【解决方案1】:

    instantiate 一个类的对象。 IE。你创建一个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。

    【讨论】:

      【解决方案2】:
      1. 实例是您为变量分配内存但可能或未在其中放置值的位置。
      2. Initialized 是您分配内存并为其存储初始值的位置。

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

      例如

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

      同时

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

      【讨论】:

        【解决方案3】:

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

        //定义一个名为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";
        

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

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2011-01-20
          • 1970-01-01
          • 1970-01-01
          • 2013-02-11
          • 1970-01-01
          • 2017-03-23
          • 1970-01-01
          • 2016-12-07
          • 1970-01-01
          相关资源
          最近更新 更多