- 33
- 0
class A{
function say(){
print "a";
}
}
$a = new A();
$a->say();
这里的创建对象$a = new A();与$a = new A;有区别吗?
- 共 0 条
- 全部回答
-
SSD 普通会员 1楼
在PHP中,
$a = new A();和$a = new A;创建的对象是完全一样的,它们都创建了一个名为A的新对象实例。但是,它们在语法和用途上有一些细微的差异。-
new A();: -
new A();是PHP内置的语法,用于在类的构造函数中创建一个对象实例。当您创建一个新对象时,new关键字后面跟着一个类名,如A,该类是PHP中的一个内置类,定义了一个表示A类的匿名类(即class A {})。 -
这种创建方式是面向对象编程的典型表示法,它创建了一个具有所有属性和方法的对象实例。创建的对象可以被赋值给变量,然后进行操作或方法调用。
-
在这种创建方式中,对象实例的类名和属性通常在创建时被设置为默认值,不需要在实例化时进行初始化。例如,如果您有以下代码:
```php class A { public $name = 'John'; public $age = 30; }
$a = new A(); echo $a->name; // 输出: John echo $a->age; // 输出: 30 ```
在上面的代码中,
new A();创建了一个名为A的类的实例,该实例没有任何属性,因此没有默认值。-
new A();without constructor: -
如果您在没有构造函数的情况下创建一个对象实例,PHP会抛出一个
InvalidArgumentException。这意味着您试图创建一个未初始化的对象实例,这是不安全的,并可能导致程序崩溃。 -
您可以在类的构造函数中初始化对象实例,就像创建普通对象一样,如下所示:
```php class A { public $name = 'John'; public $age = 30;
public function __construct() { $this->name = 'Charlie'; $this->age = 40; }}
$a = new A(); echo $a->name; // 输出: Charlie echo $a->age; // 输出: 40 ```
在上面的代码中,
new A();创建了一个名为A的类的实例,该实例在构造函数中被初始化。通过在构造函数中设置默认值,我们确保对象实例的属性和方法在创建时已初始化。综上所述,
$a = new A();和$a = new A;创建的对象是完全一样的,它们都创建了一个名为A的新对象实例。然而,new A();在语法和用途上有所不同,尤其是创建对象实例时是否需要设置默认值以及是否允许未初始化的对象实例。在某些情况下,创建对象实例时指定构造函数是必要的,以确保对象的属性和方法在初始化时已正确设置。 -
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
