# static静态属性与静态方法
**静态:** 属于类而不属于单个对象 (全局的,所有对象共享的)
**静态属性:** 类的方法内调用静态属性时,不能使用$this->方式,而要使用self::的方式
**静态方法:**
在类没有任何对象的时候也能被调用
当成普通方法来用也没问题的
在静态方法中不能调用普通方法
## 实例
~~~
class People {
static private $name;
public function setname($namec) {
self::$name = $namec;
}
public function getname() {
return self::$name;
}
static public function name($namecc) {
echo "I am $namecc";
}
static public function getmyname(){
return self::$name;
}
}
$A = new People();
$A->setname("小明 <br/>");
echo $A->getname();
$B = new People();
$B->setname("小智 <br/>");
echo $B->getname();
echo $A->getname();
echo People::name("小霞");
echo "<br/>";
~~~
**静态成员代码示例**
~~~
class Foo {
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo {
public function fooStatic() {
return parent::$my_static;
}
}
print Foo::$my_static . " ";
$foo = new Foo();
print $foo->staticValue() . " ";
// print $foo->my_static . " "; // Undefined "Property" my_static
print $foo::$my_static . " ";
$classname = 'Foo';
print $classname::$my_static . " "; // PHP 5.3.0之后可以动态调用
print Bar::$my_static . " ";
$bar = new Bar();
print $bar->fooStatic() . " ";
~~~
## 总结
**静态变量**
静态变量是只存在于函数作用域的变量,不过,在函数执行完成后,这种变量的值不会丢失,也就是说,在下一次调用这个函数时,变量仍然会记得原来的值。要将某个变量定义为静态的,只需要在变量前加上 static 关键字即可。
在类中,static关键字有两种主要用法,一是用来定义静态成员,一是用来定义静态方法。在类的内部,可以使用作用域限定符 (::) 来访问不同层次作用域的变量。
**静态方法**
静态方法和非静态方法之间有一个重要的区别:在调用静态方法时,不再需要拥有类的实例。
静态方法和非静态方法使用原则:一是如果某个方法中不包含$this变量,就应该时静态方法;如果不需要类的实例,可能还应该使用静态类,这样可以免去实例化类的工作。另,在静态方法中时不能使用$this变量的,因为静态方法不属于某个特定的实例。
## 区别
1. static方法是类中的一个成员方法,属于整个类,即使不用创建任何对象也可以直接调用!
2. 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
3. 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
4. C++中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能用类的静态成员。
- 序言
- 基础
- 介绍
- 环境安装
- Hello Word
- 类型
- 运算符
- 流程控制
- 函数
- 类与对象
- 常量
- 命名空间
- static静态属性与静态方法
- 内置函数
- 自定义函数
- 时间
- 日期
- IP
- 百度地图经纬度
- 跳转
- 编码处理
- 随机字符串
- 字符串加密
- 字符串截取
- 获取文件扩展名
- Base64
- Crypt
- Des
- Hmac
- Rsa
- Xxtea
- 文件
- 获取团队人数
- 实用类
- Database
- Thinkphp date
- QQ登录
- Curl模拟Http工具类
- Date
- Http类
- Verify
- Upload类
- PHPExcel类
- IpLocation类
- Image类
- 阿里云短信发送
- WechatApi
- WeixinPay
- 常用实例
- 简单上传预览
- 无限分类数据树形格式化
- 获取客户端信息
- 根据经纬度获地址相关信息
- PHP源代码加密
- PHP采集
- PHP采集二
- PHP实现域名授权的两种方法
- 汉字转拼音类
- Email邮箱发送
- 文件加密
- 下载远程图片到本地
- Token
- 微信扫码登录
- 判断访问终端是否是微信浏览器
- 生成随机数
- 正则
- 1、正则表达式介绍
- 2、正则表达式的语法规则
- 2.1普通转义字符
- 2.2 字符类(字符集)和范围
- 2.3 重复匹配
- 2.4 开始或结尾
- 2.5 元字符“.”
- 2.6 选择符
- 2.8 匹配特殊字符
- 2.9 模式匹配的顺序
- 2.10 模式修正符(Pattern Modifiers)
- 3、PHP中的正则表达式相关函数
- 4、PHP字符串操作相关内置函数
- 常用正则表达式汇总
- 使用POSIX兼容规则的函数
- 正则常用实例
- 验证手机号码
- 身份证验证大全
- Mysql
- PHP操作Mysql
- PHP连接数据库基本操作
- 数据库操作语句
- 备份代码
- MyISAM与InnoDB
- 一、表锁差异
- 二、数据库文件差异
- 三、索引差异
- 四、开发的注意事项
- 五、究竟该怎么选择
- 六、重复地总结一遍
- 七、性能对比
- 八、总结
- 导入导出sql文件
- 开发工具
- PhpStorm(推荐)
- sublime text 3
- 快捷键汇总
- 插件说明
- 激活码
- 扩展阅读
- Sublime Text 2
- 配置文件详解
- Navicat(数据库)
- Screen to Gif
- MindMaster
- 微信公众号
- 微信登录
- 微信浏览器登录
- 网页授权登录
- 微信公众平台接口调试工具
- 获取access_token
- 获取素材列表
- 获取素材总数
- 获取access_token接口
- 微信用户扫码关注
- 获取access_token
- 生成带参数二维码
- 微信开发之接收事件推送
- 服务器配置
- 获取UnionID
- 微信开放平台绑定公众号
- 微信批量生成二维码并保存
- 下载微信头像和二维码
- 模版消息
- 未关注获取用户信息
- 自定义菜单创建接口
- 通过测试接口创建菜单
- 统一获取OPENID
- 全局返回码说明
- 微信提现功能(企业付款到用户零钱)
- 微信支付
- 场景介绍
- 案例介绍
- 开发步骤
- 获取用户ip指引
- demo
- 唤醒微信APP支付
- 统一下单代码
- web_url
- weixinpay类
- 常见问题
- 授权目录以及当前URL未注册的问题
- 微信的redirect_uri参数错误原因分析
- NaNget_brand_wcpay_request
- 申请退款
- 企业付款到零钱
- 现金红包
- 支付宝支付
- 前提条件
- 手机网站支付DEMO
- 异步通知
- 同步通知
- Alipay SDK for PHP
- PHP SDK 集成示例
- 扩展库
- APP支付
- 产品介绍
- 快速接入
- 客户端DEMO&SDK
- 服务端 DEMO & SDK
- 常见错误
- 使用OpenSSL工具生成密钥
- 生成 RSA 密钥
- 普通公钥方式
- 公钥证书方式
- 相关阅读
- 小程序
- 获取不到 unionid
- 小程序支付
- 服务器维护
- Linux
- Thinkphp5.1 创建定时任务
- Windows
- 常见问题
- 编码问题
- Scope参数错误或没有Scope权限解决方法
- 500 Internal Server Error
- 扩展知识
- 堆栈
- 栈的基本操作
- 容器和依赖注入
- PHP程序员如何理解IoC/DI
- php常见术语
- Win10下安装CentOS 7双系统
- PHP中静态方法和实例化方法的区别
- 用户变量和系统变量
- 使用精选文章
- composer使用
- redis
- PHP The Right Way
- 各种版本区别
- 如何设计短信验证码防刷机制
- 阿里云搭建SVN服务器
- 大型网站技术架构
- 阿里云购买免费证书
- 阿里云在Apache服务器上安装SSL证书
- https证书、搭建https网站
- 服务器缺少中间证书
- 附录
- 版本及缩写
- 干货收藏