php - 这两种初始化 PHP 类的方法有什么区别?

标签 php class

我想知道这两种初始化类对象的方法的区别

方法一(使用作用域解析运算符):

Test::foo();

方法二(创建对象实例):

$test = new Test;
$test->foo();

还有这个 -> 运算符叫什么?

最佳答案

Test::foo() 只是静态调用一个类的方法,它不对对象做任何事情。它可能会初始化类中的静态值,但您通常不使用静态初始值设定项。在 Singletons 的情况下,可以在内部使用静态初始化程序,但你永远不应该像这样调用公共(public)静态初始化程序。

$test = new Test实际上是实例化一个对象,在这个过程中很可能初始化

请注意初始化(设置对象/类/变量的初始状态)和实例化(从类创建对象实例)之间的区别。

->T_OBJECT_OPERATOR

关于php - 这两种初始化 PHP 类的方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068384/

相关文章:

python - 派生类重载时调用基类方法

php - 并排对齐两个输入字段

java - java方法的返回值

php - 如果 mysql 中存在该值,如何禁用下拉值

php - Laravel 表单请求 hasFile() 不起作用

php如何生成动态list()?

php - 插入数据库问题... (Bad character coding) PHP/MYSQL

c++ - 将类成员数组组合到单个数组时性能受到影响

JavaScript setInterval 范围问题 : an alternative to bind

php - 使用 PHP、JS 或 JQuery 生成多页 PDF 订单?