導航:首頁 > 編程語言 > 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方法相關的資料

熱點內容
啄木鳥影業都有哪些作品 瀏覽:824
在電腦上怎麼把pdf保存成圖片 瀏覽:767
末段愛情廣播劇是哪個app可以聽 瀏覽:322
e片免費看 瀏覽:361
成龍教外國小孩功夫電影叫什麼 瀏覽:482
disk命令分區 瀏覽:912
丁巴度愛與激情 瀏覽:264
韓國野戰電影 瀏覽:462
法國chouchou在線觀看 瀏覽:700
linux歷史命令查看 瀏覽:964
堅果安卓11怎麼樣 瀏覽:497
imovie壓縮 瀏覽:453
古裝鬼電影大全 瀏覽:457
韓電影app 瀏覽:888
何炅參加密室逃脫視頻 瀏覽:897
日本生孩子電影 瀏覽:262
編譯原理語法英文 瀏覽:853
北京樓房解壓 瀏覽:774
最新更新你懂的電影 瀏覽:968
好看影視在線觀看 瀏覽:644