php object 对象不存在。增加对象_PHP核心

1、单例模式

单例模式三要素:

  • 拥有一个构造函数,并且为private
  • 拥有一个静态成员变量来保持类的实例
  • 拥有一个访问这个实例的静态方法
<?php
//Instan.php   单例类class Instan{static public $instance = null;private function __construct(){var_dump('new class');}public static function getInstance(){if(!self::$instance){self::$instance = new self();}return self::$instance;}public function getInfo(){echo 'Information...' . "<br />";}}
<?php
//test.phpinclude './Instan.php';Instan::getInstance()->getInfo();
Instan::getInstance()->getInfo();
Instan::getInstance()->getInfo();//在同一个进程中,无论调用多少次实例类,都只会实例化一次,这就是单例模式

256ccbec797e614e4b44cd1369e22e5e.png

2、注册树模式

  • 注册树模式通过将对象实例注册到一棵全局的对象树上
  • 需要的时候,从对象树上采摘下来使用
<?php
//test.phpinclude './abc';//只是为了演示注册树模式,生产环境不要这样写class Register{protected static $object = null;/*** 将对象实例挂到注册树上* @param $key* @param $object*/public static function set($key, $object){self::$object[$key] = $object;}/*** 获取注册树获取对象* @param $key*/public static function get($key){if(!isset(self::$object[$key])){self::$object[$key] = new $key;}return self::$object[$key];}/*** 从注册树上摘下* @param $key*/public static function unsetObj($key){unset(self::$object[$key]);}/*** 测试注册树*/public function test(){$abc = new Abc();self::set("Abc",$abc);//注册$res = self::get("Abc")->getAbc();//获取var_dump($res);//也可以直接get,因为get方法会自动注册self::get("Abc")->getAbc();}}
<?php
//abc.phpclass Abc
{public function getAbc(){var_dump('ABC');}
}

3、依赖注入(控制反转)

//Index.php 控制器class Index
{$person = new Person();$car = new Car();//此处的Car类可以灵活的换成其他类echo $person->driveCar($car);
}
//Person类class Person
{/*** 依赖:Person类依赖于Car类* 注入:Car类注入到Person类* @param $obj* @return mixed*/public function driveCar($obj){return $obj->run();}}
//Car类class Car
{public function run(){return '跑得快,跑得快...';}
}

4、反射

https://www.php.net/manual/zh/book.reflection.php

<?php
class Apple {public function firstMethod() { }final protected function secondMethod() { }private static function thirdMethod() { }
}$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>
array(3) {[0]=>&object(ReflectionMethod)#2 (2) {["name"]=>string(11) "firstMethod"["class"]=>string(5) "Apple"}[1]=>&object(ReflectionMethod)#3 (2) {["name"]=>string(12) "secondMethod"["class"]=>string(5) "Apple"}[2]=>&object(ReflectionMethod)#4 (2) {["name"]=>string(11) "thirdMethod"["class"]=>string(5) "Apple"}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库查询求小于_SQL学习笔记(二)简单查询

本篇主要学习如何通过简单查询获取想要的数据。从零学会SQL&#xff1a;简单查询​www.zhihu.com基本的查询语句从数据库中查找数据时要使用select子句&#xff0c;select子句是sql中使用最多、最基本的子句。子句是sql语句的组成要素&#xff0c;是以某一个关键字作为开始的语…

隐私计算 2.1秘密共享--问题模型及定义

1 秘密共享问题模型 1.1 富翁和三个儿子的故事 问题&#xff1a; 富翁想在自己的三个儿子中找一个最聪明的来继承自己的遗产&#xff0c;在保护好财富的同时&#xff0c;让其他两个人也参与进来&#xff0c;使得兄弟间和睦相处&#xff0c;家庭和谐。 大儿子的方案&#xff…

如何命令行结束react程序_想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化...

前言 以前一直有疑问困扰着我&#xff1a;人人都在吹的Docker容器化&#xff0c;与前端有何关系&#xff1f;然而在近两年的编程生涯&#xff0c;在每一次产品迭代中&#xff0c;渐渐体会到了容器化其魅力所在。应用部署从刀耕火种&#xff0c;到DevOps崛起&#xff0c;原来不止…

什么是spark的惰性计算?有什么优势?_spark——spark中常说RDD,究竟RDD是什么?

本文始发于个人公众号&#xff1a;TechFlow&#xff0c;原创不易&#xff0c;求个关注今天是spark专题第二篇文章&#xff0c;我们来看spark非常重要的一个概念——RDD。在上一讲当中我们在本地安装好了spark&#xff0c;虽然我们只有local一个集群&#xff0c;但是仍然不妨碍我…

前端websocket获取数据后需要存本地吗_是什么让我放弃了Restful API?了解清楚后我全面拥抱GraphQL!...

背景REST作为一种现代网络应用非常流行的软件架构风格&#xff0c;自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性&#xff0c;可扩展性&#xff0c;伸缩性受到广大Web开发者的喜爱。REST 的 API 配合JSON格式的数据交换&#xff…

子集和问题 算法_LeetCode刷题实战90:子集 II

算法的重要性&#xff0c;我就不多说了吧&#xff0c;想去大厂&#xff0c;就必须要经过基础知识和业务逻辑面试算法面试。所以&#xff0c;为了提高大家的算法能力&#xff0c;这个公众号后续每天带大家做一道算法题&#xff0c;题目就从LeetCode上面选 &#xff01;今天和大家…

隐私计算 2.5 Blakley秘密共享方案

1 简介 作者&#xff1a;Blakley&#xff1b;时间&#xff1a;1979年&#xff1b;理念&#xff1a;基于高斯消元法。 2 具体实现 I 秘密分割算法 II 秘密重构算法 3 实例 设秘密S(3,10,5)S (3, 10, 5)S(3,10,5)&#xff0c;n5n 5n5, t3t 3t3。 I 秘密分割 &#xff0…

conda如何升级pytorch_Google Cloud TPUs 支持 Pytorch 框架啦!

在2019年PyTorch开发者大会上&#xff0c;Facebook&#xff0c;Google和Salesforce Research联合宣布启动PyTorch-TPU项目。项目的目标是在保持PyTorch的灵活性的同时让社区尽可能容易地利用云TPU提供的高性能计算。团队创建了PyTorch/XLA这个repo&#xff0c;它可以让使PyTorc…

隐私计算 2.6 秘密共享的同态特性

1 秘密共享的同态性 秘密共享的同态性&#xff1a;秘密份额的组合等价于组合的秘密共享份额。 假设A、B两方分别有秘密SAS^ASA和SBS^BSB&#xff1b;他们的值被随机拆分为S1A,…,SnAS_1^A, \dots, S_n^AS1A​,…,SnA​和S1B,…,SnBS_1^B, \dots, S_n^BS1B​,…,SnB​&#xff…

二阶龙格库塔公式推导_带你走进最美数学公式

同学们&#xff0c;我们先来跟老师欣赏一下数学中最优美的式子吧&#xff1f;是什么魔力让以上几个似乎毫不相干的数学中最特殊的数字能如此优美的写在同一个式子呢&#xff1f;是欧拉&#xff0c;是数学。0和1——老师就不用介绍啦&#xff0c;e是自然常数(natural constant)&…

隐私计算 2.9 秘密共享应用于横向联邦学习

1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习&#xff0c;主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景&#xff0c;例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体&#xff0c;所以他们的客户交集非常小&a…

python缩进说法_【多选题】关于Python程序中与“缩进”有关的说法中,以下选项中错误的是()。...

问题&#xff1a;【多选题】关于Python程序中与“缩进”有关的说法中&#xff0c;以下选项中错误的是&#xff08;&#xff09;。更多相关问题 因方某将赵某打伤&#xff0c;方某住所地的市劳动教养委员会对方某作出劳动教养2年的决定&#xff0c;并将方某送交劳动 根据行政诉讼…

智能测井解释

1 智能测井解释的需求分析 1、岩性识别 2、储层划分 3、参数计算 4、流体判别 5、井数据批量处理 岩性识别&#xff1a;分类任务 曲线预测、曲线补齐&#xff1a;回归任务 2 岩性识别 2.1 岩性识别主要方法简介 目前岩性识别的方法主要有重磁、测井、地震、遥感、电 磁、地…

基于移动设备的OCR识别工作进展(1)

1 模型调研 模型1&#xff1a;Tesseract-OCR 模型2&#xff1a;PaddleOCR Android上面有体验版的demo&#xff1a;https://ai.baidu.com/easyedge/app/openSource?frompaddlelitePP-OCR模型&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/README_…

2020.2idea创建web_IntelliJ IDEA 2017.3 完整的配置Tomcat运行web项目教程(多图)

小白一枚&#xff0c;借鉴了好多人的博客&#xff0c;然后自己总结了一些图&#xff0c;尽量的详细。在配置的过程中&#xff0c;有许多疑问。如果读者看到后能给我解答的&#xff0c;请留言。Idea请各位自己安装好&#xff0c;还需要安装Maven和Tomcat&#xff0c;各自配置好环…

OCR基本原理

学习内容为《动手学OCR.pdf》 1 OCR基础 1.1 OCR是什么 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;&#xff1b; 传统意义上的OCR&#xff1a;面向扫描文档类对象&#xff1b; 一般意义上的OCR&#xff1a;场景文字识别&#xff08…

实用供暖通风空调设计手册 第三版_实用供热空调设计手册第三版即将出版随想...

看到西北院组织豪华的暖通空调大师阵容编写的《实用供热空调设计手册》第三版即将出版的信息&#xff0c;暖通空调人都期盼着2020年底见到具有更多新理念、新技术、新方法、新设备、新材料内容的新版《实用供热空调设计手册》。看到《实用供热空调设计手册》第二版&#xff0c;…

android 北斗定位代码_iPhone 11 确认支持北斗导航,真相来了!

点击 哎咆科技 关注我们最近“北斗”火了。因为7月31日&#xff0c;北斗三号全球卫星导航系统正式开通。截止8月7日&#xff0c;微博话题“北斗三号全球卫星导航系统正式开通”已有5.3亿次阅读、8万次讨论。北斗三号全球卫星导航系统的开通&#xff0c;意味着中国自主研发的北斗…

linux shell rman删除归档_我们一起学一学渗透测试——黑客应该掌握的Linux基础

点击上方「蓝字」关注我们各位新老朋友们&#xff1a;大家好&#xff0c;我是菜鸟小白。欢迎大家关注“菜鸟小白的学习分享”公众号&#xff0c;菜鸟小白作为一名软件测试工程师&#xff0c;会定期给大家分享一些测试基础知识、测试环境的搭建和python学习分享&#xff0c;另外…

PAN++学习笔记

1 主要创新点 文本检测和识别两个任务结合起来&#xff0c;作为互补&#xff0c;提高检测和识别精度&#xff1b;处理不规则形状的文本&#xff1b;提供一个高效的端到端框架PAN&#xff0c;对实时的应用场景友好。 2 已有工作的痛点 将文本检测和识别任务分开&#xff0c;不…