Vimeo ကုမ္ပဏီ
ဆာလံသည် မှားယွင်းသောအမျိုးအစားအသုံးပြုမှုအပြင် အမျိုးမျိုးသောပြဿနာအများစုကို ဖော်ပြသည်။
ထို့အပြင်၊ ခွင့်ပြုရန် လုံခြုံသော ပရိုဂရမ်းမင်းကိရိယာများကို ပံ့ပိုးပေးထားသည်။
/** @var string|null*/
$a = foo();
/** @var စာတန်း $a*/
echo strpos($a၊ 'ဟဲလို');
/** @psalm-assert-if-true B$a */
function isValidB(A $a) : bool {
B&& $a->isValid();
}
တွေ့ရှိသောပြဿနာများကို အလိုအလျောက်ဖယ်ရှားပေးရန်အတွက် Psalter utility ကို ပံ့ပိုးပေးထားပြီး plugins များနှင့်
ဆာလံစာစောင်အသစ်တွင်၊
echo၊ exec၊ include နှင့် header ကဲ့သို့သော လုပ်ဆောင်ချက်များကို အသုံးပြုသည့်အခါ မှန်ကန်ကြောင်း အတည်ပြုခြင်းကို အသုံးပြုသည်။ လွတ်မြောက်ရန် လိုအပ်မှုကို ပိုင်းခြားစိတ်ဖြာသည့်အခါ၊ စာသား၊ SQL၊ HTML နှင့် Shell ကုဒ်ပါသော စာသားအမျိုးအစားများ၊ အထောက်အထားစိစစ်ခြင်းဆိုင်ရာ ဘောင်များပါသော စာကြောင်းများကို ထည့်သွင်းစဉ်းစားသည်။ အဆိုပြုထားသောမုဒ်သည် သင့်အား cross-site scripting (XSS) သို့မဟုတ် SQL အစားထိုးခြင်းဆီသို့ ဦးတည်စေသော ကုဒ်များတွင် အားနည်းချက်များကို ဖော်ထုတ်နိုင်စေပါသည်။
ထို့အပြင်၎င်းကိုမှတ်သားနိုင်သည်။
-
ပါဝင် JIT compiler ကုန်ထုတ်စွမ်းအားကို တိုးတက်စေမည့် အသုံးချမှု၊ - ထောက်ပံ့
သမဂ္ဂအမျိုးအစားများ အမျိုးအစား နှစ်မျိုး သို့မဟုတ် ထို့ထက်ပိုသော စုစည်းမှုများကို သတ်မှတ်ခြင်း (ဥပမာ၊ “အများပြည်သူဆိုင်ရာ လုပ်ဆောင်မှု foo(Foo|Bar $input): int|float;”)။ - ထောက်ပံ့
ဂုဏ်တော်များ Docblock syntax ကို အသုံးမပြုဘဲ အတန်းများနှင့် မက်တာဒေတာ (အမျိုးအစား အချက်အလက်များ ကဲ့သို့သော) ချိတ်ဆက်ရန် ခွင့်ပြုသော (မှတ်ချက်များ)။ -
အတိုကောက်အထားအသို class အဓိပ္ပါယ်ဖွင့်ဆိုချက်များသည် constructor နှင့် properties ၏အဓိပ္ပါယ်ကို ပေါင်းစပ်နိုင်စေပါသည်။ - အသစ်ပြန်အမ်းအမျိုးအစား -
တည်ငြိမ်သော . - အမျိုးအစားအသစ် -
ရောထွေး လုပ်ဆောင်ချက်တစ်ခုသည် မတူညီသောအမျိုးအစားများ၏ ကန့်သတ်ဘောင်များကို လက်ခံခြင်းရှိမရှိ ဆုံးဖြတ်ရန် အသုံးပြုနိုင်သည်။ - စကားရပ်
ပစ်ခြင်း ခြွင်းချက်များကိုကိုင်တွယ်ရန်။ -
WeakMap အမှိုက်စုဆောင်းစဉ်အတွင်း စွန့်လွှတ်နိုင်သော အရာများကို ဖန်တီးရန် (ဥပမာ၊ မလိုအပ်သော ကက်ရှ်များကို သိမ်းဆည်းရန်)။ -
အခွင့်အရေး အရာဝတ္ထုများ (get_class()) ဟုခေါ်သော တူညီသောအသုံးအနှုန်းအတွက် “::class” ကို အသုံးပြုခြင်း။ -
အခွင့်အရေး ကိန်းရှင်များနှင့် မသက်ဆိုင်သော ခြွင်းချက်များ၏ ဖမ်းဆုပ်မှုဆိုင်ရာ အဓိပ္ပါယ်ဖွင့်ဆိုချက်များ။ -
အခွင့်အရေး လုပ်ဆောင်ချက် ကန့်သတ်ချက်များစာရင်းရှိ နောက်ဆုံးဒြပ်စင်ပြီးနောက် ကော်မာတစ်ခုချန်ထားပါ။ - အင်တာဖေ့စ်အသစ်
ကြိုးတပ်လို့ရတယ်။ string အမျိုးအစားများ သို့မဟုတ် ဒေတာကို string တစ်ခုအဖြစ်သို့ ပြောင်းလဲနိုင်သည့် မည်သည့် string အမျိုးအစားကိုမဆို ခွဲခြားသတ်မှတ်ရန် ( __toString() method ကိုရရှိနိုင်သည်)။ - အင်္ဂါရပ်အသစ်
str_contains() string တစ်ခု၏အစနှင့်အဆုံးတွင်ကိုက်ညီမှုများကိုစစ်ဆေးရန်အတွက် str_starts_with() နှင့် str_ends_with() ၏လုပ်ဆောင်ချက်များကိုဆုံးဖြတ်ရန်အတွက် strpos ၏ရိုးရှင်းသော analogue တစ်ခု။ - လုပ်ဆောင်ချက်ကို ထည့်သွင်းထားသည်။
fdiv() သုညဖြင့် ပိုင်းခြားသည့်အခါ အမှားအယွင်းမဖြစ်စေဘဲ ခွဲခြင်းလုပ်ငန်းကို လုပ်ဆောင်သည်။ -
ပြောင်းသွားတယ်။ string joining logic။ ဥပမာအားဖြင့်၊ echo "sum:" ဟူသော စကားရပ်။ $a + $b' ကို ယခင်က 'echo ("sum:" . $a) + $b' ဟု အဓိပ္ပာယ်ရပြီး PHP 8 တွင် 'echo "sum:" ဟု သဘောထားပါမည်။ ($a + $b)'။ -
တင်းကျပ် ဂဏန်းသင်္ချာနှင့် ဘစ်လုပ်ဆောင်ချက်များကို စစ်ဆေးခြင်း ဥပမာ၊ စကားရပ်များ "[] % [42]" နှင့် "$object + 4" တို့သည် အမှားအယွင်းဖြစ်သွားလိမ့်မည်။ -
ဟိုဟာ မတူညီသော အပြေးများတစ်လျှောက် ထပ်တူတန်ဖိုးများကို ထိန်းသိမ်းထားသည့် တည်ငြိမ်သော စီခြင်း အယ်လဂိုရီသမ်။
source: opennet.ru