PHP工厂模式的日常使用


Posted in PHP onMarch 20, 2019

负责生成其他对象的类或方法,这就是工厂模式,下面是一个经常见到的用法

<?php
class test{
  public $x=1;
  public $setting;
  //负责生成其他对象的类或方法,这就是工厂模式
  public function getSetting(){
    if(!$this->setting){
      $this->setting=new Setting();
    }
    return $this->setting;
  }
}
class Setting{
  public function __construct(){
    echo 1111;
  }
}
$test=new test();
$setting=$test->getSetting();
$setting2=$test->getSetting();
 
 
//判断两个对象是否是同一个对象
var_dump($setting===$setting2);
//看编号,也能看出来
var_dump($setting);
var_dump($setting2);
 
 
 
 
//属性中有减号的处理
$name="x-b";
$test->$name=2;
 
var_dump($test);
 
 
//$test->x-b;//直接使用上面的属性,会被认为是一个减号
/*
报错:
PHP Notice: Use of undefined constant b - assumed 'b' in D:\phpServer\WWW\test\
test.php on line 11
 
Notice: Use of undefined constant b - assumed 'b' in D:\phpServer\WWW\test\test.
php on line 11
 
*/
 
echo $test->{'x-b'}; //这种属性里面有-的这样包一下

以上所述是小编给大家介绍的PHP工厂模式的日常使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP模拟SQL Server的两个日期处理函数
Oct 09 PHP
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
Oct 15 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
PHP函数积累总结
Mar 19 #PHP
PHP与Perl之间知识点区别整理
Mar 19 #PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 #PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 #PHP
php+ajax 文件上传代码实例
Mar 18 #PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 #PHP
详解php中curl返回false的解决办法
Mar 18 #PHP
You might like
推荐一篇入门级的Class文章
2007/03/19 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
wxPython实现整点报时
2019/11/18 Python
Python面向对象实现方法总结
2020/08/12 Python
英文求职信结束语大全
2013/10/26 职场文书
网络管理员岗位职责
2014/03/17 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang
Go gorilla/sessions库安装使用
2022/08/14 Golang