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

熱點內容
linux查看路由表命令 瀏覽:505
高手程序員使用什麼筆記本 瀏覽:439
ios壓縮圖片app 瀏覽:839
排隊論pdf 瀏覽:520
python調用無參函數 瀏覽:798
主管開除女程序員 瀏覽:713
雲伺服器轉售 瀏覽:540
壓縮空氣漏氣量怎樣計算 瀏覽:103
手機app是怎麼跳轉的 瀏覽:664
學編程的重要性 瀏覽:24
程序員去按摩 瀏覽:739
奧迪手機控車app怎麼添加愛車 瀏覽:5
收磚機石獅編程培訓廠家 瀏覽:762
吉里吉里2安卓模擬器怎麼用 瀏覽:819
編譯器將匯編代碼 瀏覽:682
電路板加密錯誤 瀏覽:21
java自動機 瀏覽:363
相機連拍解壓 瀏覽:32
linuxssh服務重啟命令 瀏覽:330
茂名氫氣隔膜壓縮機 瀏覽:47