导航:首页 > 编程语言 > phpgetinstance方法

phpgetinstance方法

发布时间:2024-02-26 08:39:58

php中几种常见的开发模式

单例模式

㈡ php设计模式之单例、多例设计模式的应用分析

本篇文章是对php设计模式中的单例与多例设计模式的应用进行了详细的分析介绍 需要的朋友参考下

单例(Singleton)模式和不常销灶见的多例(Multiton)模式控制着应用程序中类的数量 如模式名称 单例只能实例化一次 只有一个对象 多例模式可以多次实例化 基于Singleton的特性 我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量 但有时并不推荐使用Singleton 因为它生成了一个全局状态且 该单一根对象没有封装任何系统功能 多数情况下 会使单元明斗岁测试和调试变得困难 读者根据情况自行决定 代码示例

复制代码 代码如下: <?php class SingletonExample{ private function __construct(){}//防止直接实例化 public static function getInstance(){ //不与任何对象有关联 static $instance=null; //调用此函数的所有代码共享该变量 不必要让其是类的静态变量 if($instance==null){ $instance=new SingletonExample(); } return $instance; } } $obj =SingletonExample::getInstance(); $obj =SingletonExample::getInstance(); var_mp($obj ===$obj );// true 是同一个实例 ?>

Multiton与singleton相似 不同的是后者需要getInstance()函数传递关键值 对于给定的关键值只会存在唯一的对象实例激睁 如果有多个节点 每个节点拥有唯一的表识符 且各个节点在某单次执行(如cms里的节点)可能出现多次 那么就可以用Multiton模式实现这些节点啊 Multiton节省内存 并确保同一个对象的多个实例不发生冲突 示例

复制代码 代码如下: lishixin/Article/program/PHP/201311/21166

㈢ php里=&是什么意思

这是引用赋值,应该注意的是 =& 不是一个运算符,不能看成一个整体。

java Aes 类,可否用 php 实现,求助于懂 Java 代码的 php 程序猿

Java Aes 类,用 php 实现方法:
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

public class AESSecurityUtil {

private static final String AES ="AES";
private static final String CHARSET_NAME ="utf-8";

private static SecretKeySpec getKey(String password) throws NoSuchAlgorithmException{

KeyGenerator kgen = KeyGenerator.getInstance(AES);
SecureRandom random=SecureRandom.getInstance("SHA1PRNG");
random.setSeed(password.getBytes());
kgen.init(128, random);

SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES);
return key;
}

public static String encode(String str, String password)
{
byte[] arr = encodeToArr(str, password);
return byteArrToString(arr);
}

private static byte[] encodeToArr(String str, String password)
{
try
{
Cipher cipher = Cipher.getInstance(AES);
byte[] byteContent = str.getBytes(CHARSET_NAME);

cipher.init(Cipher.ENCRYPT_MODE, getKey(password));
byte[] result = cipher.doFinal(byteContent);
return result;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}

public static String decode(String hexStr, String password){
byte[] arr = string2ByteArr(hexStr);
return decode(arr, password);
}

private static String decode(byte[] arr, String password) {
try{

Cipher cipher = Cipher.getInstance(AES);
cipher.init(Cipher.DECRYPT_MODE, getKey(password));

byte[] result = cipher.doFinal(arr);
return new String(result, CHARSET_NAME);
}catch (Exception e){
e.printStackTrace();
}
return null;
}

private static String byteArrToString(byte[] arr) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i <arr.length; i++) {
String s = Integer.toString(arr[i] + 128, 16);
if (s.length() == 1){
s ="0"+ s;
}
sb.append(s);
}

return sb.toString().toUpperCase();
}

㈤ php 单例模式

单例模式是一种常用的软件设计模式,可以保证系统中一个类只有一个实例,从而达到节约系统资源提升特殊类使用效率的目的


php实现单例模式的方法

classA{
//静态属性
privatestatic$_instance;

//空的克隆方法,防止被克隆
privatefunction__clone(){}

//获取实例
(){
if(!(self::$_instanceinstanceofself)){
self::$_instance=newA();
}
returnself::$_instance;
}
}

//调用
$obj=A::getInstance();
阅读全文

与phpgetinstance方法相关的资料

热点内容
幼儿编程教育培训多少钱 浏览:401
经常生气有什么东西能解压 浏览:900
代理服务器地址和端口可以怎么填 浏览:62
unity5手游编译模型 浏览:265
安卓无人机app源码 浏览:808
pl1编程语言 浏览:801
台达plc编程换算指令大全 浏览:174
手机上的编程游戏 浏览:108
服务器密码机有什么用 浏览:477
dos磁盘命令 浏览:955
单片机cpu52的功能 浏览:691
opc服务器怎么开发 浏览:373
觅喜是个什么app 浏览:402
加密cd机 浏览:946
社保用什么app缴纳 浏览:313
nodevlinux 浏览:582
腾讯tt服务器怎么登录密码 浏览:898
windows命令提示符 浏览:352
win7管理员权限命令 浏览:729
地图app哪个适合老年人用 浏览:74