PHP工厂模式的日常使用

yipeiwu_com5年前PHP代码库

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

<?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工厂模式的日常使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【宜配屋www.yipeiwu.com】网站的支持!

相关文章

PHPUnit测试私有属性和方法功能示例

本文实例讲述了PHPUnit测试私有属性和方法功能。分享给大家供大家参考,具体如下: 一、测试类中的私有方法: class Sample { private $a = 0;...

crontab无法执行php的解决方法

本文分析了crontab无法执行php的解决方法。分享给大家供大家参考,具体如下: 用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决cro...

PHP实现批量修改文件名的方法示例

本文实例讲述了PHP实现批量修改文件名的方法。分享给大家供大家参考,具体如下: 需求描述: 某个文件夹下有100个文件,现在需要将这个100个文件的文件名后添加字符串Abc(后缀名保持不...

php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法

解决方法: 使用服务器作为代理. 在PHP中, 使用我最喜欢的最强大的CURL,嘿嘿 下面是在万网查询域名的实例代码 复制代码 代码如下: <?php $dn = $_GET['d...

php编程中echo用逗号和用点号连接的区别

php编程中echo用逗号和用点号连接的区别

里面提到了echo 字符串用,比用.连接要好。原因先不说,先来看以下两句 <?php // 逗号比.更节省时间? echo '1+5=' . 1+5;...