`
- 浏览:
719692 次
- 性别:
- 来自:
无锡
-
因为静态成员是在类第一次加载的时候就创建的,所以在类的外部不需要对象而使用类名就可以访问的到静态的成员;静态成员被这个类的每个实例对象所共享,那么我们php语言使用对象可不可以访问类中的静态成员?
静态的成员不是在每个对象内部存在的,但是每个对象都可以共享,所以我们如果使用对象访问成员的话就会出现没有这个属性定义,使用对象访问不到静态成员的,在其它的面向对象的语言中,
Java是可以使用对象的方式访问静态成员的
类里面的静态方法只能访问类的静态的属性,在类里面的静态方法是不能访问类的非静态成员的,原因很简单,我们要想在本类的方法中访问本类的其它成员,我们需要使用$this这个引用,而$this这个引用指针是代表调用此方法的对象,我们说了静态的方法是不用对象调用的,而是使用类名来访问,所以根本就没有对象存在,也就没有$this这个引用了,没有了$this这个引用就不能访问类里面的非静态成员,又因为类里面的静态成员是可以不用对象来访问的,所以类里面的静态方法只能访问类的静态的属性,即然$this不存在,在静态方法中访其它静态成员我们使用的是一个特殊的类”self”; self和$this相似,只不过self是代表这个静态方法所在的类。所以在静态方法里,可以使用这个方法所在的类的“类名“,也可以使用“self“来访问其它静态成员,如果没有特殊情况的话,我们通常使用后者,即”self::成员属性”的方式。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在PHP编程语言中,静态变量是一种特殊的成员变量,它们在类定义时被声明,并在整个脚本执行期间保留其值。与实例变量不同,静态变量不依赖于类的实例,而是与类本身相关联。理解静态变量的初始化是掌握PHP面向对象...
在PHP编程语言中,`static`关键字用于定义类的静态属性和方法,它们与类的实例(对象)无关,而是直接关联到类本身。理解静态方法和非静态方法的使用和区别是掌握PHP面向对象编程的关键。 静态方法是通过类名直接...
在OOP中,`static`关键字是一个非常重要的特性,用于声明类的静态变量和静态方法。下面我们将深入探讨`static`关键字的工作原理以及它在PHP中的应用。 首先,`static`关键字用于声明类属性或方法,使其成为类的静态...
在PHP编程语言中,静态调用非静态方法是一种特殊情况,虽然在Java或C#等静态类型语言中会被编译器捕获并报错,但在PHP这样的动态语言中却是可行的,尽管并不推荐。PHP允许这样的调用主要是为了保持向后兼容,尤其是...
在Java编程中,List集合是开发人员经常使用的一种数据结构,用于存储有序的元素列表。本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化...
- Java和JavaScript的区别:Java是一种静态类型语言,而JavaScript是动态类型语言;Java运行在虚拟机上,JavaScript通常在浏览器中运行。 - Java和PHP的区别:Java是一种面向对象的、跨平台的编程语言,而PHP是一...
- 静态作用域(Static):在函数内部声明的静态变量,其值在函数调用结束后仍然保持。 全局变量和局部变量的访问问题可以通过全局关键字(global)来解决。例如,要在函数内部访问全局变量,可以在函数内部声明同名...
### 理解PHP5中static和const关键字的区别 #### 一、引言 随着PHP5的发布,PHP语言引入了许多面向对象编程的新特性,使之更接近于像Java这样的传统面向对象语言。其中两个重要的关键字——`static`和`const`,在...
这是PHP中的一个关键操作符,用于访问静态属性和方法,以及调用类常量。以下是一些用法示例: - 访问静态属性:`Class::static_property`,例如 `MyClass::myStaticVar`。 - 调用静态方法:`Class::static_method...
6. 静态成员:Java和PHP都支持静态成员,它们属于类而不是类的实例。Java中用 static 关键字声明,PHP同样使用 static 关键字。 7. 接口:Java的接口是完全抽象的,不能包含方法实现,而PHP5.3以后引入的接口...
UserService类含有一个userService的私有静态变量,用来保存该类的唯一的实例对象,它对于外部对象是不可见的,只能通过getInstance()方法才能获得。UserService类的构造方法是私有的,外部对象无法通过它的构造方法...
`new`用于创建对象,`static`修饰符用于声明静态成员,它们属于类而不是类的实例。`strictfp`确保浮点计算的精确性,`synchronized`用于线程同步,以避免并发访问导致的数据不一致。`transient`用于标记一个变量在...
1. 静态变量的作用域与生命周期:在C/C++程序中,`static`关键字用于声明静态变量。在函数内部声明的静态变量(如`fun`函数中的`x`),其作用域仅限于该函数,但生命周期贯穿整个程序执行过程,即每次调用该函数,...
在Java中,单例会一直存在于整个应用程序的生命周期里,而PHP中所有变量都是页面级的,每次页面执行时都会重新建立新的对象。因此,在PHP中实现单例模式需要特别注意。 ##### 2、单例模式在PHP中的应用场合 - **...
- **静态变量:** 在函数内部使用`static`关键字声明的变量,在函数每次调用之间保留其值。 - **超全局变量:** 不需要通过`global`关键字即可在整个脚本中访问。 #### 4. PHP中的错误处理 **机制:** - **错误...
4. **静态调用(Static Calls)**:现在可以在非静态方法上使用`self::`调用,增强了代码的灵活性。 5. **新内建函数**:如`array_column()`用于从多维数组中提取一列数据,`array_replace_recursive()`用于递归地...
2. ** Late Static Bindings (LSB)**:这解决了静态方法调用时的绑定问题,允许静态方法调用父类中的静态属性或方法。 3. **闭包(Closures / Anonymous Functions)**:PHP 5.3添加了对匿名函数的支持,也称为闭包...
2. ** Late Static Binding (LSB)**:允许在静态方法中调用父类的静态属性或方法,解决了继承链上的静态方法调用问题。 3. **闭包(Closures)**:也称为匿名函数,使得在PHP中可以创建和使用函数对象,增强了函数...
为了在Java程序中访问MySQL,需要JDBC驱动(如mysql-connector-java),将其添加到系统的类路径中。在JSP或Servlet中,可以使用以下代码建立数据库连接: ```java import java.sql.Connection; import java.sql....