PHP တွင် is_array () သည် variable တစ်ခုသည်ခင်းကျင်းမှုတစ်ခုရှိမရှိဆုံးဖြတ်ရန်တိုက်ရိုက် built-in function ကိုဖြစ်သည်။ သို့သော် "Array ၏ဖွဲ့စည်းပုံသည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိ" သည် variable သည်ခင်းကျင်းမှုတစ်ခုဖြစ်ကြောင်းဆုံးဖြတ်ရန်နှင့်ကိုက်ညီသည် ။ အခြေအနေများနှင့်အကောင်းဆုံးအလေ့အကျင့်များ။
is_array ($ v) - $ V သည် array တစ်ခုဖြစ်သည် ဖြစ်စေ ဆုံးဖြတ်သည် ။
ထုတ်ပေးရန် ($ ar ar row ['key'] နှင့် array_key_exists ('key', $ ar arr) : သော့ချက်ရှိမရှိဆုံးဖြတ်ပါ။ ထုတ်ပေးသူသည်လည်း တန်ဖိုးသည် NULL မဟုတ်ကြောင်းကိုလည်းဆုံးဖြတ်လိမ့်မည်။
Checking function များကိုရိုက်ထည့်ပါ။ is_int () , is_string () , is_bool (), is_bool () , is_bool (), is_bool () ,
ပေါင်းစပ်စစ်ဆေးမှု: is_array () ကို များသောအားဖြင့်အဓိကတည်ရှိမှုနှင့်ပေါင်းစပ်။ အသုံးပြုလေ့ရှိပြီး Element တစ်ခုသည်မျှော်လင့်ထားသည့်ဖွဲ့စည်းပုံနှင့်ကိုက်ညီမှုရှိမရှိဆုံးဖြတ်ရန်စစ်ဆေးပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">isArraySimple</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$var</span></span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>);
}
</span><span><span class="hljs-variable">$a</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$b</span></span><span> = </span><span><span class="hljs-string">"not an array"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isArraySimple</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>)); </span><span><span class="hljs-comment">// true</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isArraySimple</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>)); </span><span><span class="hljs-comment">// false</span></span><span>
</span></span>မှတ်ချက် - ၎င်းသည်အခြေခံအကျဆုံးခြေလှမ်းဖြစ်သည်။ ရှုပ်ထွေးသောဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာစစ်ဆေးမှုကိုရြိယာ ရာ () မှန် သည်။
ဖြစ်ရပ် - အသုံးပြုသူအချက်အလက်များကိုရရန်ကျွန်ုပ်မျှော်လင့်ပါသည်။ ဖွဲ့စည်းပုံသည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span>[
'id' => int,
'name' => string,
'email' => string,
'meta' => array (မလုပ်မနေရမဟုတ်သော,အကယ်. ၎င်းသည်တည်ရှိပါက၎င်းသည်ခင်းကျင်းမှုဖြစ်သင့်သည်)
]
</span></span>အကောင်အထည်ဖော်မှုဥပမာ -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">validateUser</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">array</span></span></span><span> </span><span><span class="hljs-variable">$arr</span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-comment">// လိုအပ်သောလယ်ကွင်း</span></span><span>
</span><span><span class="hljs-variable">$required</span></span><span> = [</span><span><span class="hljs-string">'id'</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span>, </span><span><span class="hljs-string">'email'</span></span><span>];
</span><span><span class="hljs-comment">// ပထမ ဦး စွာ၎င်းသည်ခင်းကျင်းမှုတစ်ခုဖြစ်သည်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
</span><span><span class="hljs-comment">// 检查လိုအပ်သောလယ်ကွင်း存在</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$required</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$arr</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
}
</span><span><span class="hljs-comment">// စစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>]) || !</span><span><span class="hljs-title function_ invoke__">is_string</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>]) || !</span><span><span class="hljs-title function_ invoke__">is_string</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>])) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
</span><span><span class="hljs-comment">// မလုပ်မနေရမဟုတ်သော字段 meta,ရှိလျှင်,တစ်ခုခင်းကျင်းဖြစ်ရမည်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'meta'</span></span><span>, </span><span><span class="hljs-variable">$arr</span></span><span>) && !</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>[</span><span><span class="hljs-string">'meta'</span></span><span>])) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-comment">// အသုံးပြုမှုဥပမာ</span></span><span>
</span><span><span class="hljs-variable">$ok</span></span><span> = [</span><span><span class="hljs-string">'id'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Alice'</span></span><span>, </span><span><span class="hljs-string">'email'</span></span><span> => </span><span><span class="hljs-string">'[email protected]'</span></span><span>, </span><span><span class="hljs-string">'meta'</span></span><span> => [</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-number">25</span></span><span>]];
</span><span><span class="hljs-variable">$bad</span></span><span> = [</span><span><span class="hljs-string">'id'</span></span><span> => </span><span><span class="hljs-string">'1'</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'Bob'</span></span><span>, </span><span><span class="hljs-string">'email'</span></span><span> => </span><span><span class="hljs-string">'[email protected]'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">validateUser</span></span><span>(</span><span><span class="hljs-variable">$ok</span></span><span>)); </span><span><span class="hljs-comment">// true</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">validateUser</span></span><span>(</span><span><span class="hljs-variable">$bad</span></span><span>)); </span><span><span class="hljs-comment">// false (id မဟုတ် int)</span></span><span>
</span></span>ဖြစ်ရပ် - လက်ခံရရှိသည့် array သည်အသုံးပြုသူအ ရာ 0 တ်ထုများစာရင်းဖြစ်သည်။
နမူနာကုဒ်:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">validateUserList</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$list</span></span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$list</span></span><span>)) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$list</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$index</span></span><span> => </span><span><span class="hljs-variable">$item</span></span><span>) {
</span><span><span class="hljs-comment">// တစ်ခုချင်းစီကို element တစ်ခု array ဖြစ်ရမည်,နှင့်ဖွဲ့စည်းပုံထိရောက်သောဖြစ်ပါတယ်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$item</span></span><span>) || !</span><span><span class="hljs-title function_ invoke__">validateUser</span></span><span>(</span><span><span class="hljs-variable">$item</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span></span>မှတ်ချက် - ဒီနေရာမှာ item _array () ပထမ ဦး ဆုံး is_array () ပထမ ဦး ဆုံး, ပြီးတော့တိကျတဲ့အတည်ပြု function ကိုခေါ်တယ်။ နိုင်ငံခြားအချက်အလက်များနှင့် ပတ်သက်. ကာကွယ်ရေးဆိုင်ရာစစ်ဆေးမှုများပြုလုပ်ရန် (ဥပမာ API တောင်းခံသည့်အလောင်းများကဲ့သို့) ကိုပြုလုပ်ရန်အလွန်အရေးကြီးသည်။
Retursive functions များသည် arrays တွင်မသိသောနက်ရှိုင်းသောနက်ရှိုင်းသောသို့မဟုတ်အလွှာအသိုက်လုပ်သည့်အခါတည်ဆောက်ပုံများကိုစစ်ဆေးရန်အသုံးပြုသည်။ ဥပမာ - သစ်ပင် - တူသောမီနူးသို့မဟုတ် Multi-Level အမျိုးအစားခွဲခြားပုံ။
recarsive ဥပမာတစ်ခု (node တစ်ခုစီတွင် ID နှင့် ကလေးများ ပါ 0 င်သင့်သည် (array သို့မဟုတ် array))
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">validateTreeNode</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$node</span></span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$node</span></span><span>)) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-comment">// ပါဝင်ရမည် id</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'id'</span></span><span>, </span><span><span class="hljs-variable">$node</span></span><span>) || !</span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-variable">$node</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>])) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
</span><span><span class="hljs-comment">// children မလုပ်မနေရမဟုတ်သော,但若存在တစ်ခုခင်းကျင်းဖြစ်ရမည်,ကလေးတစ် ဦး စီသည်ဥပဒေရေးရာ node တစ်ခုဖြစ်ရမည်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-string">'children'</span></span><span>, </span><span><span class="hljs-variable">$node</span></span><span>)) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$node</span></span><span>[</span><span><span class="hljs-string">'children'</span></span><span>])) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$node</span></span><span>[</span><span><span class="hljs-string">'children'</span></span><span>] </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$child</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">validateTreeNode</span></span><span>(</span><span><span class="hljs-variable">$child</span></span><span>)) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span></span>"လိုချင်သောဖွဲ့စည်းတည်ဆောက်ပုံ" ကိုပုံမှန်ခင်းကျင်းခြင်း, Volicator ကိုပိုမိုယေဘုယျအားဖြင့်ပိုမိုများပြားစေနိုင်သည်။
စည်းမျဉ်းအမျိုးအစားဥပမာ (Pseudo-Cultip):
<span><span><span class="hljs-variable">$schema</span></span><span> = [
</span><span><span class="hljs-string">'id'</span></span><span> => </span><span><span class="hljs-string">'int'</span></span><span>,
</span><span><span class="hljs-string">'name'</span></span><span> => </span><span><span class="hljs-string">'string'</span></span><span>,
</span><span><span class="hljs-string">'email'</span></span><span> => </span><span><span class="hljs-string">'string'</span></span><span>,
</span><span><span class="hljs-string">'meta'</span></span><span> => [</span><span><span class="hljs-string">'type'</span></span><span> => </span><span><span class="hljs-string">'array'</span></span><span>, </span><span><span class="hljs-string">'schema'</span></span><span> => [</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-string">'int'</span></span><span>]]
];
</span></span>အထွေထွေ Verifier (ရိုးရှင်းသောအကောင်အထည်ဖော်မှု):
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">validateBySchema</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$data</span></span></span><span>, </span><span><span class="hljs-variable">$schema</span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>) || !</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$schema</span></span><span>)) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$schema</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$rule</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>)) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>; </span><span><span class="hljs-comment">// 可扩展为မလုပ်မနေရမဟုတ်သော字段支持</span></span><span>
}
</span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_string</span></span><span>(</span><span><span class="hljs-variable">$rule</span></span><span>)) {
</span><span><span class="hljs-comment">// ရိုးရှင်းသောအမျိုးအစားကိုက်ညီမှု</span></span><span>
</span><span><span class="hljs-variable">$typeCheck</span></span><span> = </span><span><span class="hljs-keyword">match</span></span><span> (</span><span><span class="hljs-variable">$rule</span></span><span>) {
</span><span><span class="hljs-string">'int'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">is_int</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>),
</span><span><span class="hljs-string">'string'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">is_string</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>),
</span><span><span class="hljs-string">'bool'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">is_bool</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>),
</span><span><span class="hljs-string">'float'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">is_float</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>),
</span><span><span class="hljs-string">'array'</span></span><span> => </span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>),
</span><span><span class="hljs-keyword">default</span></span><span> => </span><span><span class="hljs-literal">false</span></span><span>
};
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$typeCheck</span></span><span>) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$rule</span></span><span>) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$rule</span></span><span>[</span><span><span class="hljs-string">'type'</span></span><span>]) && </span><span><span class="hljs-variable">$rule</span></span><span>[</span><span><span class="hljs-string">'type'</span></span><span>] === </span><span><span class="hljs-string">'array'</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>)) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$rule</span></span><span>[</span><span><span class="hljs-string">'schema'</span></span><span>])) {
</span><span><span class="hljs-comment">// array မှတူညီသောအတွင်းပိုင်းကိုသုံးပါ schema စိစစ်အတည်ပြုလုပ်ဆောင်ပါ(၎င်းသည် Associative Array ဖြစ်သည်ဟုယူဆပါ)</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">validateBySchema</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-variable">$rule</span></span><span>[</span><span><span class="hljs-string">'schema'</span></span><span>])) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>; </span><span><span class="hljs-comment">// အမည်မသိစည်းမျဉ်းစည်းကမ်းများ</span></span><span>
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">true</span></span><span>;
}
</span></span>ထိပ်ဖျား: ရင့်ကျက်သောအတည်ပြုစာကြည့်တိုက် (ဥပမာမူဘောင်၏သက်တမ်းကို အသုံးပြု. တတိယပါတီစာနယ်ဇင်းစာကြည့်တိုက်ကို အသုံးပြု. တတိယပါတီစာကြည့်တိုက်ကိုအသုံးပြုခြင်း) ကိုအသုံးပြုသင့်သည်။
array_key_exists များ အ ကြားခွဲခြားသည် - Array ခလုတ်ရောက်သောအခါတန်ဖိုး သည် မှားယွင်းသော ကြောင့် array_key_exists သည် မှန်ကန် သည်။ အကယ်. NULL သည်ခွင့်ပြုထားသောတန်ဖိုးကိုတန်ဖိုးထားပါက array_key_exists ကို သုံးပါ။
ပြင်ပထည့်သွင်းမှုအမျိုးအစားများသည်စိတ်မချရသော : JSON_Decode ( JSON_Decode ) သည်နံပါတ်ကို int / float သို့ပြောင်းလဲလိမ့်မည်။
IS_ARRAY ကို အပြီးသတ်မသုံးပါနှင့် - is_array သည်ပထမခြေလှမ်းသာဖြစ်ပြီးများသောအားဖြင့်အဓိကတည်ရှိမှု, အမျိုးအစား, တန်ဖိုးအကွာအဝေး,
အ ချည်း နှီးသောခင်းကျင်း ခြင်း နှင့် array များအကြားခြားနားချက်ကို သတိပြုပါ ။ အချည်းနှီးသောခင်းကျင်းခွင့်ပြုရန်ခွင့်ပြုသင့်သည်ဖြစ်စေရှင်းလင်းစွာသတ်မှတ်ထားရမည်။
စွမ်းဆောင်ရည်ထည့်သွင်းစဉ်းစားမှုများ - အချက်အလက်အမြောက်အများကိုပမာဏအမြောက်အများကိုထုတ်ဖော်ပြောဆိုခြင်းပြုလုပ်နိုင်သည့်အချက်အလက်အမြောက်အများကိုထုတ်ဖော်ပြသနိုင်သည့်ပမာဏမှာစွမ်းဆောင်ရည် overhead ရှိနိုင်သည်။
API သည် Post / users / batch ကို လက်ခံသည်ဟုယူဆပြီးခန္ဓာကိုယ်သည် JSON array ဖြစ်သည်ဟုယူဆပြီး, နမူနာအပြောင်းအလဲနဲ့စီးဆင်းမှု
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 1. မူရင်းကိုရယူပါ body</span></span><span>
</span><span><span class="hljs-variable">$raw</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'php://input'</span></span><span>);
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$raw</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>); </span><span><span class="hljs-comment">// ဒုတိယ parameter သည် true အဆိုပါ Associative Array ပြန်လာသည်</span></span><span>
</span><span><span class="hljs-comment">// 2. အခြေခံစစ်ဆေးခြင်း</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">400</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>([</span><span><span class="hljs-string">'error'</span></span><span> => </span><span><span class="hljs-string">'အဆိုပါတောင်းဆိုချက်ခန္ဓာကိုယ်ဖြစ်ရမည် JSON အခင်းအကျင်း'</span></span><span>]);
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// 3. တစ်ခုချင်းစီကို item ကိုစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-variable">$valid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">validateUserList</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$valid</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">422</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>([</span><span><span class="hljs-string">'error'</span></span><span> => </span><span><span class="hljs-string">'အခင်းအကျင်း中存在不符合结构的元素'</span></span><span>]);
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// 4. နောက်ဆက်တွဲအပြောင်းအလဲနဲ့(စာကြည့်တိုက်ရေးပါ、အောင်မြင်မှုသို့ပြန်သွားပါ။)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>([</span><span><span class="hljs-string">'status'</span></span><span> => </span><span><span class="hljs-string">'ok'</span></span><span>]);
</span></span>Filter_VAR () : အီးမေးလ်, URL စသည် (ဥပမာ, filter_valka_emaima ) ကိုစစ်ဆေးပါ။
ctsepe_digit () - string တစ်ခုသာကိန်းဂဏန်းများသာပါ 0 င်သည်ဖြစ်စေဆုံးဖြတ်သည်။
PHP 8 ၏ ပွဲစဉ် , အရိပ်အမြွက်များနှင့်ပြည်ထောင်စုအမျိုးအစားများသည် function signatures များကိုထပ်မံအာမခံချက်ပေးနိုင်သည်။
နယ်နိမိတ်အမျိုးမျိုးကိုဖုံးအုပ်ထားသည့်နယ်နိမိတ်ဖြစ်စဉ်များကိုစာနယ်ဇင်းအဘို့အစာမေးပွဲကိစ္စများရေးသားရန်ယူနစ်စမ်းသပ်မှုများ (PHPunit) ကိုသုံးပါ။
is_array () သည်အရေးကြီးသော်လည်း, ဖွဲ့စည်းပုံသည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိဆုံးဖြတ်ရန်သော့၏တည်ရှိမှု, တန်ဖိုးနည်းခြင်း,
စိစစ်ရေးဆိုင်ရာယုတ္တိဗေဒကိုသေးငယ်သောလုပ်ဆောင်ချက်များသို့မဟုတ် Schema အခြေစိုက်အထွေထွေ validator များသို့ encapsuling encaples သို့မဟုတ် schema အခြေခံသည့်အထွေထွေ validator များသည်ထိန်းသိမ်းနိုင်မှုနှင့်ပြန်လည်ရယူနိုင်ခြင်းကိုတိုးတက်စေသည်။
ပြင်ပသွင်းအားစုများကိုအမြဲတမ်းခုခံကာကွယ်ပါ (ရှုပ်ထွေးမှုများ, ပျောက်ဆုံးခြင်း, လယ်ကွင်းများ,
ရှုပ်ထွေးသောအခြေအနေများတွင်ရင့်ကျက်သောစိစစ်အတည်ပြုစာကြည့်တိုက်များသို့မဟုတ်မူဘောင်များမှပေးထားသောအတည်ပြုလုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းကို ဦး စားပေးဆောင်ရွက်မှုကိုပေးထားသည်။