当前位置: 首页 > 编程笔记 >

PHP使用静态方法的几个注意事项

融渊
2023-03-14
本文向大家介绍PHP使用静态方法的几个注意事项,包括了PHP使用静态方法的几个注意事项的使用技巧和注意事项,需要的朋友参考一下

本文实例介绍了PHP使用静态方法的几个常见注意事项。分享给大家供大家参考。具体方法如下:

1. 即使类中的方法并未用static声明,但其未使用到可改变的类成员变量,在外部仍可用操作符::来调用;

2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!!

例如以下的代码:

<?php 
class TestClass1 
{ 
  public $normal_v = 'normal_v from TestClass1'; 
  public static $STATIC_V = 'STATIC_V from TestClass1'; 
  public function test_func1() 
  { 
    echo $this->normal_v.'<br />'.self::$STATIC_V; 
  } 
} 
class TestClass2 
{ 
  public $normal_v = 'normal_v from TestClass2'; 
  public static $STATIC_V = 'STATIC_V from TestClass2'; 
  public function test_func2() 
  { 
    TestClass1::test_func1(); 
  } 
} 
$t2 = new TestClass2(); 
$t2->test_func2(); 

这段代码是输出会是什么呢,我原以为会是normal_v from TestClass1 <br /> STATIC_V from TestClass1,测试发现其实我错了,正确的输出是:

normal_v from TestClass2
STATIC_V from TestClass1

说明:test_func1()虽然是在TestClass1中定义的,但却是在TestClass2中调用的,其内部的$this变量则是由TestClass2决定的!

其实这两个类的关系应该属于"双向关联".

感兴趣的朋友可以测试运行本文实例,相信会有新的收获!

 类似资料:
  • 本文向大家介绍PHP Header用于页面跳转时的几个注意事项,包括了PHP Header用于页面跳转时的几个注意事项的使用技巧和注意事项,需要的朋友参考一下 前言 本文介绍的是在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题 一、location和“:”号间不能有空格,否则会出错。 二、在用header前不能有任何的输出。

  • 本文向大家介绍PHP 实现页面静态化的几种方法,包括了PHP 实现页面静态化的几种方法的使用技巧和注意事项,需要的朋友参考一下 1、通过buffer来实现 需要用file_put_contents ob_get_clean()等内置函数 2、通过$_SERVER['PATH_INFO']来实现 3、通过Apache配置来实现 需要开启rewrite重写模块 通过rewrite来配置vhost 如果

  • 本文向大家介绍浅析php静态方法与非静态方法的用法区别,包括了浅析php静态方法与非静态方法的用法区别的使用技巧和注意事项,需要的朋友参考一下 在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法” 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。 static关键字可以用来修

  • 问题内容: 请具有PHP经验的人提供以下帮助。在我的代码中的某个地方,我调用了一个非实例化类中的公共静态方法: 但是,我希望有许多这样的类,并根据用户的语言即时确定正确的类名称。换句话说,我有: …,我需要做类似的事情: 我知道我可以将语言作为参数传递给函数,并在一个通用类中处理它,但是由于种种原因,我希望使用其他解决方案。 有人吗?谢谢。 问题答案: 使用call_user_func函数: ht

  • 本文向大家介绍jQuery中on方法使用注意事项详解,包括了jQuery中on方法使用注意事项详解的使用技巧和注意事项,需要的朋友参考一下 on(eventType,[childSelector],[data],fn) 采用事件委托机制绑定事件,好处是子元素动态加入时无需再次绑定。 on方法可以传入childSelector指定添加事件处理函数的具体子元素,还可以传入对象格式的数据data,fn函

  • 本文向大家介绍Python中除法使用的注意事项,包括了Python中除法使用的注意事项的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了Python中除法使用的注意事项,是非常重要的技巧,对于Python程序设计来说有很好的借鉴价值。具体分析如下: 现来看如下示例: 源程序只是为了演示变长参数的使用,不过 Python 2.7.1 的解释器里,我得到的结果却和注释的结果不一样 可以很明显的看