7 静态方法
l 定义
public static(){ 代码 }
l 说明
(1) 静态方法是在类中定义的
(2) static是关键字,不能修改
(3) 静态方法专门用于操作静态属性
(4) 静态方法可以通过类名直接调用,形式:类名::静态方法名(参数)
class A{
private static $address = '北京';
public static function showAddress(){
echo "地址是:".self::$address;
}
}
A::showAddress();
// 类里面的静态方法只能访问类的静态属性,不能访问类的非静态成员。
l 静态属性和静态方法的最佳实践-单例模式
第一种:
class DaoMysql{
private $myslq_link;
private static $instance = null;
private function __construct($host, $user, $pwd){
$this->mysql_link = @mysqli_connect($host,$user,$pwd);
}
//通过这个静态方法来创建对象
public static function getSingleton($host,$user,$pwd){
if(self::$instance == null){
self::$instance = new DaoMysql($host,$user,$pwd);
}
return self::$instance;
}
private function __clone(){
}
}
$dao = DaoMysql::getSingleton('localhost','root','root');
var_dump($dao);
第二种:
class DaoMysql{
private $myslq_link;
private static $instance = null;
private function __construct($host, $user, $pwd){
$this->mysql_link = @mysqli_connect($host,$user,$pwd);
}
//通过这个静态方法来创建对象
public static function getSingleton($host,$user,$pwd){
if(!self::$instance instanceof self){
self::$instance = new self($host,$user,$pwd);
}
}
private function __clone(){
}
}
$dao = DaoMysql::getSingleton('localhost','root','root');
var_dump($dao);
l 补充知识点:instanceof
class Cat{
}
$cat = new Cat;
if($cat instanceof Cat){
echo "cat是Cat的对象实例";
}
//用于判断某对象是否是某类的对象实例
本文作者:xiaoovo
本文链接:https://www.cnblogs.com/xiaoovo/p/15968141.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!