PHP တွင် Array_change_Key_Key_case () သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကို stdclass အရာဝတ်ထုပေါ်တွင်တိုက်ရိုက်အသုံးပြုနိုင်ပါသလား။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုအတူတကွလေ့လာရန်သင့်အားယူပါလိမ့်မည်။
array_change_key_key_case () သည်ခင်းကျင်းရန်နှင့်စာလုံးအကြီးများသို့ပြောင်းလဲခြင်းကိုပြောင်းလဲစေသည်။
$data = [
"Name" => "Alice",
"AGE" => 25
];
$lowercase = array_change_key_case($data, CASE_LOWER);
print_r($lowercase);
ရလဒ်ရလဒ် -
Array
(
[name] => Alice
[age] => 25
)
PHP တွင် stdclass သည်အသုံးအများဆုံးအမည်မသိအရာဝတ်ထုအမျိုးအစားဖြစ်သည်။ ဥပမာအားဖြင့် JSON_Decode မှတဆင့် JSON string ကို ဖြုတ်ချသည့် ဂျွန်ဆင် string ကိုဖြုတ်ချသည့်အခါ,
$json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);
print_r($obj);
ရလဒ်ရလဒ်မှာ -
stdClass Object
(
[Name] => Alice
[AGE] => 25
)
အဖြေမှာ - ၎င်းကိုတိုက်ရိုက်မသုံးနိုင်ပါ ။ array_change_key_key_case_case () သည် input parameters များကိုသာလက်ခံသည်။ အကယ်. သင်သည် stdclass အရာဝတ်ထုကိုဖြတ်သန်းရန်ကြိုးစားပါကသတိပေးသို့မဟုတ်အမှားတစ်ခုရလိမ့်မည်။
ဥပမာ -
$json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);
$result = array_change_key_case($obj, CASE_LOWER);
ထုတ်လုပ်မှု -
Warning: array_change_key_case() expects parameter 1 to be array, object given
ဒါကြောင့် အရာဝတ်ထုကိုအရင်ခင်းကျင်းပြောင်းဖို့ လိုတယ်။ ပြီးတော့ function ကိုသုံးပါ။
stdclass ကို အမျိုးအစားပြောင်းလဲခြင်း (သို့ ) get_object_vars () ကို သုံး. stdclass သို့ array သို့ပြောင်းနိုင်သည်။
$json = '{"Name": "Alice", "AGE": 25}';
$obj = json_decode($json);
// နည်းလမ်း 1:အမျိုးအစားပြောင်းလဲခြင်း
$arr = (array) $obj;
// နည်းလမ်း 2:get_object_vars()
$arr2 = get_object_vars($obj);
// အသုံးပြု array_change_key_case
$lowercase = array_change_key_case($arr, CASE_LOWER);
print_r($lowercase);
ထုတ်လုပ်မှု -
Array
(
[name] => Alice
[age] => 25
)
အကယ်. နောက်ဆုံးရလဒ်ကိုအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲရန် လိုအပ်ပါကသင်လုပ်နိုင်သည် -
$lower_obj = (object) $lowercase;
print_r($lower_obj);
ရလဒ် -
stdClass Object
(
[name] => Alice
[age] => 25
)
သင်အသုံးပြုသူအချက်အလက်များကို interface မှရရှိသည် (ဥပမာ https://api.m66.net/user/info )
$response = file_get_contents('https://api.m66.net/user/info');
$data = json_decode($response); // ပုံမှန်ဖြစ်ပါတယ် stdClass
$normalized = array_change_key_case((array) $data, CASE_LOWER);
print_r($normalized);
ဤနည်းအားဖြင့် interface မှပြန်လာသောနယ်ပယ်များသည်စာလုံးအကြီးများ, အသေးများသို့မဟုတ်ရောနှောခြင်းဖြစ်စေ,
array_change_key_key_case () ကိုသာတပ်ဆင်နိုင်;
stdclass ပထမ ဦး ဆုံး array သို့ကူးပြောင်းရမည်ဖြစ်သည်;
ပြောင်းလဲခြင်းပြီးနောက်ဤ function ကိုခေါ်ရန်အကြံပြုသည်။
ပြုပြင်ပြီးတဲ့နောက်လိုအပ်ရင်အရာဝတ်ထုကိုလည်းပြန်ပို့နိုင်တယ်။
အထူးသဖြင့်ပြင်ပ interfaces များနှင့်ချိတ်ဆက်သောအခါ JSON ဒေတာကိုလုပ်ဆောင်သောအခါဤလှည့်ကွက်ကိုအလွန်အသုံးများလေ့ရှိသည်။