လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Serialize function ကိုမိတ်ဆက် - PHP variable တွေကို string တွေကိုဘယ်လိုပြောင်းရမလဲ။

Serialize function ကိုမိတ်ဆက် - PHP variable တွေကို string တွေကိုဘယ်လိုပြောင်းရမလဲ။

gitbox 2025-05-27

PHP တွင် Serialize သည် PHP variable များကိုသိုလှောင်သိမ်းဆည်းထားသည့်ကြိုးများအဖြစ်ပြောင်းလဲရန်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်ရှုပ်ထွေးသော PHP ဒေတာအဆောက်အအုံများကိုသိမ်းဆည်းရန် (ဥပမာ array, objects များ) ကိုဒေတာဘေ့စ်, ဖိုင်စနစ်သို့မဟုတ်ကွန်ယက်တစ်ခုသို့လွှဲပြောင်းခြင်းအတွက်ချွေတာခြင်းအတွက်အသုံးဝင်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်လုပ်ငန်းဆောင်တာများအလုပ်လုပ် ပုံ နှင့် PHP variable များကိုကိုင်တွယ်ရန်မည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့တူးပါမည်။

Serialize function ကဘာလဲ?

Serialize function ၏လုပ်ဆောင်ချက်သည် PHP variable များကို (ဥပမာ array များ, အရာဝတ်ထုများစသည်တို့) အဖြစ်ပြောင်းလဲရန်ဖြစ်သည်။ ဤလုပ်ဆောင်မှုဖြင့်ရှုပ်ထွေးသော variable data structures များကို strings များအဖြစ်ပြောင်းလဲနိုင်သည်။ ၎င်းတို့သည်ဖိုင်များတွင်သိမ်းဆည်းခြင်းသို့မဟုတ်အခြားအပလီကေးရှင်းများသို့လွှဲပြောင်းနိုင်သည်။ ပြောင်းပြန်စစ်ဆင်ရေးသည် unserialize function ကိုအသုံးပြုရန်ဖြစ်သည်။

Serialize function ကိုဘယ်လိုသုံးရမလဲ။

Serialize function ၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 string serialize ( mixed $value )
  • parameters တွေကို - ဒီ function ဟာ parameter $ တန်ဖိုးကို လက်ခံတယ်, အဲဒါက PPP ဒေတာတွေ, အရာဝတ်ထုတွေ, ကြိုးတွေ,

  • ပြန်လာတန်ဖိုး - ပေးထားသော PHP variable ကိုကိုယ်စားပြုသော string ကိုပြန်လည်ရောက်ရှိစေသည်။

ဥပမာ 1: ရိုးရှင်းသောခင်းကျင်းမှုကို serialize

 <?php
// ရိုးရှင်းသောခင်းကျင်းမှုကိုသတ်မှတ်ပါ
$array = array("apple", "banana", "cherry");

// arrays serialize
$serialized_array = serialize($array);

// output ကို serialized string ကို
echo $serialized_array;
?>

အောက်ပါအတိုင်း output ကိုဖြစ်လိမ့်မည်:

 a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"cherry";}

ဤဥပမာတွင် Serialize သည် array ၏ဖွဲ့စည်းတည်ဆောက်ပုံနှင့်အကြောင်းအရာများကိုကိုယ်စားပြုသည့်ရှည်လျားသော string ကိုရှည်လျားသော string ကိုပြောင်းလဲပေးသည်။

ဥပမာ 2 - အရာဝတ်ထုတစ်ခုကို Serialize

 <?php
class Fruit {
    public $name;
    public $color;

    function __construct($name, $color) {
        $this->name = $name;
        $this->color = $color;
    }
}

// အရာဝတ်ထုတစ်ခုဖန်တီးပါ
$fruit = new Fruit("apple", "red");

// အရာဝတ်ထု serialize
$serialized_object = serialize($fruit);

// output ကို serialized string ကို
echo $serialized_object;
?>

အောက်ပါအတိုင်း output ကိုဖြစ်လိမ့်မည်:

 O:5:"Fruit":2:{s:4:"name";s:5:"apple";s:5:"color";s:3:"red";}

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် သစ်သီး အရာဝတ်ထုကို string တစ်ခုထဲသို့ 0 င် ရောက်ပြီးနောက်ပိုင်းတွင်ပြန်ယူနိုင်သည်။

PHP variable တွေကို serialize မှတစ်ဆင့်သိမ်းဆည်းခြင်းသို့မဟုတ်လွှဲပြောင်းနည်းသည်။

Serialize ၏အဓိကအခြေအနေတစ်ခုမှာ variable များကိုဒေတာဘေ့စ်များ (သို့) ဖိုင်များသို့သိမ်းဆည်းခြင်းသို့မဟုတ်ကွန်ယက်ပေါ်တွင်လွှဲပြောင်းရန်ဖြစ်သည်။ ဒေတာများကိုသိုလှောင်သောအခါကျွန်ုပ်တို့သည်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများကိုရိုးရှင်းစေရန်ရှုပ်ထွေးသောအချက်အလက်များသို့မဟုတ်အရာဝတ်ထုများကဲ့သို့သောအဆောက်အအုံများသို့မဟုတ်အရာဝတ်ထုများကဲ့သို့သောအဆောက်အအုံများသို့မဟုတ်အရာဝတ်ထုများကဲ့သို့သောအချက်အလက်များအား 0 န်ဆောင်မှုပေးသည်။

serialized ဒေတာများကိုဒေတာဘေ့စ်သို့သိမ်းထားပါ

ကျွန်ုပ်တို့တွင်အသုံးပြုသူ၏ဈေးဝယ်ခြင်းလှည်းသတင်းအချက်အလက်များကိုကိုင်ထားသည့်ဒေတာဘေ့စ်ကွက်တစ်ခုရှိသည်ဆိုပါစို့။ လှည်းသတင်းအချက်အလက်ဆိုသည်မှာအချက်အလက်များ, အရေအတွက်နှင့်စျေးနှုန်းများပါ 0 င်သည့်ရှုထောင့်အမျိုးမျိုးကိုခင်းကျင်းသည်။ ၎င်းကို string တစ်ခုသို့ပြောင်းရန်နှင့်ဒေတာဘေ့စ်သို့ string ကိုသိမ်းဆည်းရန် Serialize function ကိုသုံးနိုင်သည်။

 <?php
// စျေးဝယ်လှည်းသည် multi-diffensional array ဖြစ်သည်ဆိုပါစို့
$cart = array(
    array("product" => "apple", "quantity" => 2, "price" => 3.5),
    array("product" => "banana", "quantity" => 1, "price" => 1.2),
    array("product" => "cherry", "quantity" => 3, "price" => 2.8)
);

// စျေးဝယ်လှည်းဒေတာများကို Serialize
$serialized_cart = serialize($cart);

// ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ထားပြီးဒေတာများကိုထည့်ရန်အဆင်သင့်ရှိသည်ဆိုပါစို့
$sql = "INSERT INTO cart_table (user_id, cart_data) VALUES (1, '$serialized_cart')";
// ဒေတာဘေ့စစစ်ဆင်ရေးလုပ်ဆောင်ပါ
?>

ဒေတာဘေ့စ်မှထိုလှည်းအချက်အလက်များကိုကျွန်ုပ်တို့ရရန်လိုအပ်သည့်အခါကျွန်ုပ်တို့သည်၎င်းကိုအသုံး မပြု သည့် PHP ခင်းကျင်းမှုကိုပြန်ပြောင်းနိုင်သည်။

 <?php
// ဒေတာဘေ့စ်မှ Serialized စျေးဝယ်လှည်းများကိုကျွန်ုပ်တို့ရရှိသည်ဆိုပါစို့
$retrieved_cart_data = "a:3:{i:0;a:3:{s:7:\"product\";s:5:\"apple\";s:8:\"quantity\";i:2;s:5:\"price\";d:3.5;}i:1;a:3:{s:7:\"product\";s:6:\"banana\";s:8:\"quantity\";i:1;s:5:\"price\";d:1.2;}i:2;a:3:{s:7:\"product\";s:6:\"cherry\";s:8:\"quantity\";i:3;s:5:\"price\";d:2.8;}}";

// အသုံးပြု unserialize မူရင်းခင်းကျင်းကိုပြန်ယူပါ
$cart = unserialize($retrieved_cart_data);

// အဆိုပါ restored ခင်းကျင်း print
print_r($cart);
?>

ရလဒ်ရလဒ် -

 Array
(
    [0] => Array
        (
            [product] => apple
            [quantity] => 2
            [price] => 3.5
        )

    [1] => Array
        (
            [product] => banana
            [quantity] => 1
            [price] => 1.2
        )

    [2] => Array
        (
            [product] => cherry
            [quantity] => 3
            [price] => 2.8
        )
)

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ရှုပ်ထွေးသောသိုလှောင်မှုနှင့်ထုတ်လွှင့်ရန်အတွက်ရှုပ်ထွေးသောဒေတာအဆောက်အအုံများကို string ပုံစံများသို့ပြောင်းလဲနိုင်သည်။

မှတ်သားရန်အရာ

  • လုံခြုံရေး - စိတ်မချရသောရင်းမြစ်များမှအချက်အလက်များကို deserction လုပ်ခြင်း (အသုံးပြုသူထည့်သွင်းခြင်းကဲ့သို့သော) သည် PHP Object Office ဆေးထိုးကဲ့သို့သောလုံခြုံရေးဆိုင်ရာကိစ္စများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤပြ problems နာများကိုကာကွယ်ရန်ယုံကြည်စိတ်ချရသောအချက်အလက်များကိုသာ deserialize လုပ်ရန်သေချာစေရန်သို့မဟုတ် json_entode နှင့် json_decode ကို serialize နှင့် unserialize အစား,

  • စွမ်းဆောင်ရည်ပြ issues နာများ - ပိုမိုကြီးမားသောအချက်အလက်တည်ဆောက်မှုများကိုပြုပြင်သည့်အခါ Serialize သည် မှတ်ဥာဏ်နှင့်အပြောင်းအလဲအတွက်အချိန်ပိုမိုသုံးစွဲနိုင်သည်, ထို့ကြောင့်အသုံးပြုရန်သတိထားပါ။


အကျဉ်းချုပ်

Serialize နှင့် unlerialize များ ဖြင့် PHP developer များသည်ရှုပ်ထွေးသောသိုလှောင်မှုနှင့်ထုတ်လွှင့်ရန်အတွက်ရှုပ်ထွေးသောဒေတာအဆောက်အအုံများကိုအလွယ်တကူပြောင်းလဲနိုင်သည်။ ၎င်းသည်မတူညီသောစနစ်များသို့မဟုတ် 0 န်ဆောင်မှုများအကြားအချက်အလက်များအားဒေတာဘေ့စ်များနှင့်ဖိုင်များတွင်အချက်အလက်များကိုသိမ်းဆည်းခြင်းအတွက်အလွန်အထောက်အကူပြုသည်။ လုံခြုံရေးအားနည်းချက်များကိုရှောင်ရှားရန်အထိခိုက်မခံသောသို့မဟုတ်စိတ်မချရသောအချက်အလက်များကိုကိုင်တွယ်ရာတွင်သတိထားပါ။