سوالف اندرويد




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو فعال
#1  
اي دالتين احسن فى الاستخدام؟

بسم الله الرحمن الرحيم
اى دالتين احسن فى الاستخدام فى الكلاس يعنى دوال الى بتستخدم دوال النصوص ولا دوال التى تستخدم دوال المصوفات؟
كود PHP:
//----------------------------------------------------------------------
class Configer{
//----------------------------------------------------------------------
    
private static $_data =array();
//----------------------------------------------------------------------
    
public static function set($stringkey,$val){//config.key.key.key  ,value
        
$keys=explode('.',trim($stringkey,'.'));
        
$parentk=array_shift($keys);
        if(
count($keys) >0){
            
$stringkey=implode('.',$keys);
            
self::$_data[$parentk]=isset(self::$_data[$parentk])?self::$_data[$parentk]:array();
            
self::$_data[$parentk]=&self::setVal($stringkey,$valself::$_data[$parentk]);
        }else{
            
self::$_data[$parentk]=$val;
        }
        unset(
$keys,$stringkey,$parentk);unset($val,$key);
    }
//----------------------------------------------------------------------
    
public static function &setVal($stringkey,$val,&$parent){
        
$keys=explode('.',trim($stringkey,'.'));
        
$parentk=array_shift($keys);
        
$parent[$parentk]=(count($keys) == 0)?$val:(isset($parent[$parentk])?$parent[$parentk]:array());
        if(
count($keys) > 0){
            
$key=array_shift($keys);
            
$stringkey=(count($keys)>0)?implode('.',$keys):null;
            if(!empty(
$stringkey)){
                
$parent[$parentk][$key]=(!isset($parent[$parentk][$key]))?array():$parent[$parentk][$key];
                
$parent[$parentk][$key]=&self::setVal($stringkey,$val,$parent[$parentk][$key]);
            }else{
                
$parent[$parentk][$key]=$val;
            }
        }
        unset(
$keys,$stringkey,$parentk);unset($val,$key);
        return 
$parent ;
    }
//----------------------------------------------------------------------
    
public static function set2($stringkey,$val){//config.key.key.key  ,value
        
$stringkey=trim($stringkey,'.');
        
$lenght=stripos($stringkey,'.')?stripos($stringkey,'.'):false;
        
$parentk=($lenght == false)?$stringkey:substr($stringkey,0,$lenght);
        
$stringkey=($lenght == false)?null:substr($stringkey,$lenght);
        if(!empty(
$stringkey)){
            
self::$_data[$parentk]=isset(self::$_data[$parentk])?self::$_data[$parentk]:array();
            
self::$_data[$parentk]=&self::setVal2($stringkey,$valself::$_data[$parentk]);
        }else{
            
self::$_data[$parentk]=$val;
        }
        unset(
$keys,$stringkey,$parentk);unset($val,$key);
    }
//----------------------------------------------------------------------
    
public static function &setVal2($stringkey,$val,&$parent){
        
$stringkey=trim($stringkey,'.');
        if(empty(
$stringkey))return $parent;
        
$lenght=stripos($stringkey,'.');
        
$parentk=substr($stringkey,0,$lenght);
        
$stringkey=trim(substr($stringkey,$lenght),'.');
        
$parent[$parentk]=(empty($stringkey))?$val:(isset($parent[$parentk])?$parent[$parentk]:array());
        if(!empty(
$stringkey) && is_string($stringkey)){
            
$lenght=stripos($stringkey,'.')?stripos($stringkey,'.'):false;
            
$key=($lenght == false)?$stringkey:substr($stringkey,0,$lenght);
            
$stringkey=($lenght == false)?null:substr($stringkey,$lenght);
            if(!empty(
$stringkey)){
                
$parent[$parentk][$key]=(!isset($parent[$parentk][$key]))?array():$parent[$parentk][$key];
                
$parent[$parentk][$key]=&self::setVal2($stringkey,$val,$parent[$parentk][$key]);
            }else{
                
$parent[$parentk][$key]=$val;
            }
        }
        unset(
$keys,$stringkey,$parentk);unset($val,$key);
        return 
$parent ;
    }
//----------------------------------------------------------------------
    
public static function &get($key=false){
        if(
$key === false){
            return 
self::$_data;
        }
        
$keys=explode('.',$key);unset($key);
        
$parentk=array_shift($keys);
        if(isset(
self::$_data[$parentk])){
            
$parent=&self::$_data[$parentk];
        }else{
            
$parent=false;
        }
        if(
$parent === false){
            return 
$parent;
        }else if(
count($keys)>&& is_array($parent)){
            foreach(
$keys as $key){
                if(isset(
$parent[$key])){
                    
$parent=&$parent[$key];
                }else{
                    return 
$parent;
                }  
            }
        }
        unset(
$keys,$parentk,$key);
        return 
$parent;
    }
//----------------------------------------------------------------------
}
?> 
طريقة الاستخدام
كود PHP:
Configer::set('Config.key1.key2','http://localhost/arabframework/');
Configer::set2('Config2.key1.key2','http://localhost/arabframework/ff'); 






__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com

آخر تعديل بواسطة محمدهلال في 20-12-2011 الساعة 04:39 AM.
محمدهلال is offline   قديم 20-12-2011, 04:36 AM
الرد مع إقتباس
الرد على الموضوع



أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
ممكن شرح دالتين ؟! محمد منذر PHP 3 04-08-2008 11:25 PM
[نقاش] هل تنهار شبكة الانترنت فجأة تحت وطأة الاستخدام؟ عبد الواحد البشيري القسم العام 3 19-06-2007 02:43 AM
|PHP| دالتين str_replace و str_ireplace elMASry PHP 1 24-03-2007 02:33 PM
لا أصدق , موقعي مشترك مع Google AD-Sense , ماهي طريقة الاستخدام؟ ابن مكة عروض البيع وطلبات الشراء في البرمجة والتصميم وبناء المحتوى وتبادل الاعلانات 10 24-02-2005 07:54 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 10:23 PM.