导航:首页 > 编程语言 > php类什么时候用静态方法

php类什么时候用静态方法

发布时间:2022-03-07 08:03:19

A. php类中有静态方法和非静态的,我想问的是,什么时候用静态方法,静态方法和普通方法有什么不同

php类中的静态方法和非静态方法,跟一般我们所说OOP编程中的用法不尽相同,有些特性是不完善的,但你可以当它们是正规OOP的类来使用。

B. 什么时候用静态方法static - PHP进阶讨论

静态方法就是隶属于一个类的函数,为什么希望让这个函数隶属于类,一般有两种情况:1、函数的名字太常规,以至于可能与其它独立函数产生命名冲突,则你把它作为类的静态方法,可以变相起到封入命名空间的效果。比如你想为某个类定义一个特别版的setcookie();2、当一个函数希望访问某个类的私有成员变量时(private 或 protected),显然在通常情况下,它作为外部独立函数是访问不到的。把它定义为那个类的静态方法,就可以作为类的成员函数轻松访问那些私有成员变量了。另外对 6 楼做一个补充:静态成员方法也有访问级别,如果定义为了 private 或 protected,则外部是无法作为普通函数直接调用的。

C. php 一般什么时候用静态方法

1. 即使类中的方法并未用static声明,但其未使用到可改变的类成员变量,在外部仍可用操作符::来调用;
2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!!

D. php 静态方法 是什么意思

<?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关键字时,可以!但不支持这种写法)
对象》访问》静态方法(类的方法)->可以
对象》访问》普通方法(对象的方法)->可以
*/
?>

E. 在php开发中什么时候使用static,什么时候不使用 也就是什么时候该将类或方法静态化,什么时候不能。

恒哥,不好意思!我说一下,不对之处还请指正!不能用static修饰class吧!我只用过静态变量,静态成员方法!静态成员方法一般在该方法不属于某个特定的类实例时使用,即直接属于某个类,静态成员方法相当于一个全局函数!以前看书说类和对象在内存中储存方式上得知,静态方法不存在于储存对象的堆栈中,而是保存在定义类的堆栈中,说明在对象中你“找不到”静态方法的!但是PHP也能直接通过对象的方式调用静态的方法,只不过PHP在内部处理了这种调用!但是类的静态成员变量是不能直接通用对象的方式来调用的。

F. php 什么时候 静态方法

当一个方法被执行时才占内存,执行完毕就释放了,静态函数加载时会放到静态区,暂时不占内存

G. php什么时候用静态方法

静态方法就是隶属于一个类的函数,为什么希望让这个函数隶属于类,

H. php中静态方法的问题

self::是代表在本类里调用静态方法get();因为在静态方法里面只能调静态方法,不能调用实例方法,如果调用实例方法的话那就用this,

I. PHP面向对象的静态方法具体什么时候用

静态变量,没有什么特定的情况。就像public一样,只不过调用方法不一样。一个是$this->变量名,一个是self::变量名

阅读全文

与php类什么时候用静态方法相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:541
可以中文解压的解压软件 浏览:594
安卓卸载组件应用怎么安装 浏览:914
使用面向对象编程的方式 浏览:341
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:434
淮安数据加密 浏览:294
魔高一丈指标源码 浏览:983
松下php研究所 浏览:169
c回调java 浏览:402
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315