如下所示:
<?php header('content-type:text/html;charset=utf-8'); /* 普通方法,存放类内,只有一份 静态方法,也是存放于类内,只有一份 区别在于:普通方法需要对象去调用,需要绑定$this 即,普通方法,必须要有对象,然后让对象来调用 而静态方法,不属于哪一个对象,因此不需要绑定$this 即,不需要对象也可以调用 */ class Human{ static public $head=1; public function easyeat(){ echo '普通方法吃饭<br />'; } static public function eat(){ echo '静态方法吃饭<br />'; } public function intro(){ echo $this->name; } } Error_reporting(E_ALL|E_STRICT); //此时没有对象!方法可以执行 Human::eat(); /* 以下方法easyeat是一个非静态方法,就由对象来调用,但,用类来调用此方法来也可以执行,而严格状态下,此方法会执行,同时报错, Strict Standards: Non-static method Human::easyeat() should not be called statically in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 32 */ Human::easyeat(); /* 接上,从逻辑来理解,如果用类名静态调用非静态(普通)方法 比如:intro() 那么,这个$this是指哪个对象呢?? 因此会报错,因为找不到对象! Fatal error: Using $this when not in object context in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 23 */ Human::intro(); /* 如上分析,其实,非静态方法,是不能由类名静态调用的,但目前,php中的面向对象检测不够严格,只要静态方法中没有$this关键字,就会转化成静态方法来处理! */ $li=new Human(); $li->eat(); /* 总结: 类》访问->静态方法(类的方法)->可以 类》访问->普通方法(对象的方法)->不可以(虽然方法里不用$this关键字时,可以!但不支持这种写法) 对象》访问》静态方法(类的方法)->可以 对象》访问》普通方法(对象的方法)->可以 */ ?>
以上就是小编为大家带来的详谈php静态方法及普通方法的区别全部内容了,希望大家多多支持小牛知识库~
本文向大家介绍浅析php静态方法与非静态方法的用法区别,包括了浅析php静态方法与非静态方法的用法区别的使用技巧和注意事项,需要的朋友参考一下 在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法” 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。 static关键字可以用来修
本文向大家介绍浅谈PHP中静态方法和非静态方法的相互调用,包括了浅谈PHP中静态方法和非静态方法的相互调用的使用技巧和注意事项,需要的朋友参考一下 在PHP的非静态方法中可以调用静态方法 上面的代码会输出: this is strPrint static function. 而下面的代码会直接挂掉,php直接给出fatal error: Fatal error: Using $this when
本文向大家介绍静态方法和类方法区别?相关面试题,主要包含被问及静态方法和类方法区别?时的应答技巧和注意事项,需要的朋友参考一下 尽管 classmethod 和 staticmethod 非常相似,但在用法上依然有一些明显的区别。classmethod 必须有一个指向类对象的引用作为第一个参数,而 staticmethod 可以没有任何参数。 举个栗子:
本文向大家介绍Python实例方法、类方法、静态方法的区别与作用详解,包括了Python实例方法、类方法、静态方法的区别与作用详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实例方法、类方法、静态方法的区别与作用。分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用
我只是在看课本上给我的课文,我不是很确定我理解它在说什么。它基本上告诉我静态方法或类方法包含“modifier”关键字static。但我真的不知道那是什么意思? 有谁能用简单的术语给我解释一下什么是静态方法或者类方法吗? 另外,我能得到一个关于实例方法是什么的简单解释吗? 这是他们在课本上给我的: 静态修饰语的存在与否具有重要的实际意义。一个公共类方法可能会在Java处理它所属的类的定义后立即被调
问题内容: 在Java中同步静态方法和非静态方法有什么区别?有人可以举例说明吗?在同步方法和同步代码块方面也有什么区别吗? 问题答案: 我将尝试添加示例以使这一点更加清楚。 如前所述,Java中的同步是Monitor概念的实现。当您将代码块标记为同步时,可以使用一个对象作为参数。当执行线程进入这样的代码块时,它必须首先等待,直到同一对象上的同步块中没有其他执行线程。 在上面的示例中,一个正在运行的