导航:首页 > 编程语言 > 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方法相关的资料

热点内容
360pdf阅读器下载 浏览:751
百战程序员标签管理视频 浏览:380
朗读者app会员怎么下载 浏览:269
java读取单词 浏览:547
android查看网关 浏览:419
下载的主题在文件夹中找不到 浏览:16
在线攻击服务器什么意思 浏览:229
ce怎么改安卓系统 浏览:12
php分页显示代码 浏览:911
吃甜的东西缓解压力 浏览:171
有什么手势舞app 浏览:89
固定收益pdf 浏览:409
java排序comparator 浏览:500
如何只输入服务器上的ip 浏览:490
单片机称号 浏览:194
phpsocket并发多少 浏览:579
tomcat安装php 浏览:78
clay黏土服务器怎么加黏土 浏览:765
androidsetcolor 浏览:174
手机如何登陆主机服务器 浏览:531