<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 前面与文章内容无关的部分</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment">### [defined() 和 isset() 函数有什么区别?什么时候该用 defined()?]</span></span><span>
在 PHP 编程中,`</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 和 `</span><span><span class="hljs-keyword">isset</span></span><span>()` 都是用于检查某个值的状态的函数,但它们各自的用途和工作原理有很大的不同。理解这两个函数的区别,能帮助我们在编写 PHP 代码时选择适当的函数来处理变量和常量的检查。下面我们来详细讨论这两个函数的区别以及它们各自的适用场景。
</span><span><span class="hljs-comment">#### 1. `defined()` 函数</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 是一个用来检查常量是否已经定义的函数。常量是在程序中定义一次后不可更改的值,而 `</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>()` 用于判断某个常量是否已经被定义。
**语法:**
```php
</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ name သည် check လုပ်ထားရန်အဆက်မပြတ်အမည် (string ကို) ဖြစ်သည်။
ပြန်လာတန်ဖိုး - စဉ်ဆက်မပြတ်သတ်မှတ်ထားသည့်အတိုင်းပြန်လည်ထူထောင် ခြင်း , မဟုတ်ရင် မှားယွင်းတဲ့ ပြန်လာ။
ဥပမာ -
<span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'မြဲစဲှ MY_CONSTANT သတ်မှတ်ခဲ့ကြသည်。'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'မြဲစဲှ MY_CONSTANT undefined。'</span></span><span>;
}
</span></span>
ထုတ်လုပ်မှု -
<span><span>မြဲစဲှ MY_CONSTANT သတ်မှတ်ခဲ့ကြသည်。
</span></span>
အဆိုပါ isiveret () function ကို variable ကို set တစ်ခု ရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့် variable တစ်ခုတည်ရှိပြီးတန်ဖိုးတစ်ခုရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။
သဒ္ဒါ:
<span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> ...</span><span><span class="hljs-variable">$vars</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
parameters များ - $ var variable ကိုစစ်ဆေးရန် variable ကိုဖြစ်ပါတယ်, ၎င်းသည်တစ်ခုတည်း variable သို့မဟုတ် variable တွေကိုဖြစ်နိုင်ပါတယ်။
Reward Value: ပေးထားသော variable တွေကိုအားလုံးသတ်မှတ်ထားပါက Reward Reward Reward Reward)
ဥပမာ -
<span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">'Hello'</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">$var</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ပေြာင်းလဲတတ်သော $var set နှင့်တန်ဖိုးမပါ null。'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ပေြာင်းလဲတတ်သော $var မသတ်မှတ်သို့မဟုတ်အဖြစ် null。'</span></span><span>;
}
</span></span>
ထုတ်လုပ်မှု -
<span><span>ပေြာင်းလဲတတ်သော $</span><span><span class="hljs-keyword">var</span></span><span> set နှင့်တန်ဖိုးမပါ </span><span><span class="hljs-literal">null</span></span><span>。
</span></span>
သရုပ်ဆောင်အရာဝတ်ထု - သတ်မှတ်ထားသည့် () သည်စဉ်ဆက်မပြတ်သတ်မှတ်ထားသည့်အတိုင်း အမြဲတမ်း သတ်မှတ်ထားခြင်းရှိမရှိကိုသာအသုံးပြုသည် ။
သက်ဆိုင်သည့်အခြေအနေများ - သတ်မှတ်ထားသော () ကိုအဓိကအားဖြင့် Constants အတွက်အသုံးပြုသည်။ ( ဥပမာကမ္ဘာလုံးဆိုင်ရာ variable များ, array element များ,
Value Type: ISSET မှစစ်ဆေးထားသောအရာဝတ်ထုသည် variable တစ်ခု၏တန်ဖိုးသည် variable တစ်ခု၏တန်ဖိုးဖြစ်ပြီး Null တန်ဖိုးကိုများသောအားဖြင့်လျစ်လျူရှုထားသည်။ သတ်မှတ်ထားသော () စဉ်ဆက်မပြတ်တည်ရှိရှိမရှိစစ်ဆေးပါ။
သတ်မှတ်ထားသော () ကို အဓိကအားဖြင့်စဉ်ဆက်မပြတ်သတ်မှတ်ထားခြင်းရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။ ၎င်းသည်အောက်ပါအခြေအနေများတွင်အထူးအသုံးဝင်သည်။
အစဉ်အလာကိုထပ်ခါတလဲလဲသတ်မှတ်ခြင်းကိုရှောင်ကြဉ်ပါ ။
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'MY_CONSTANT'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
}
</span></span>
PHP မူဘောင် များ သို့မဟုတ်စာကြည့်တိုက်များစွာသည် configuration options များကိုသတ်မှတ်ရန် PHP frameworks သို့မဟုတ်စာကြည့်တိုက်များစွာကိုအသုံးပြုသည်။ အချို့သောအခြေအနေများသတ်မှတ်ထားသည့်အခြေအနေများကိုသတ်မှတ်ပြီးလက်ရှိပြင်ဆင်မှုတန်ဖိုးများကို overwrite လုပ်ခြင်းမရှိမရှိစစ်ဆေးရန်လိုအပ်သည့်အခြေအနေများကြုံတွေ့ရနိုင်သည်။
ခြွင်းချက်မရှိအဓိပ္ပာယ်သတ်မှတ်ခြင်း - တစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောလည်ပတ်မှုပတ် 0 န်းကျင်အရကွဲပြားခြားနားသောကိန်းဂဏန်းများကိုသတ်မှတ်ကြသည်။ ကွဲပြားခြားနား သော ပတ်ဝန်းကျင်နှင့်အညီ,
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">defined</span></span><span>(</span><span><span class="hljs-string">'ENVIRONMENT'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'ENVIRONMENT'</span></span><span>, </span><span><span class="hljs-string">'production'</span></span><span>);
}
</span></span>
variable ကို set နှင့် null မဟုတ်စစ်ဆေးရန် ISISTET () ကို စစ်ဆေးရန်အသုံးပြုသည်။ ပုံစံတင်သွင်းမှုများ, array element များနှင့်ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ၎င်းသည်အသုံးဝင်သည်။ ဤတွင်အချို့သောဘုံအသုံးပြုမှုအခြေအနေများမှာ -
Form input ကို Check: user input ကိုအသုံးပြုခြင်း, is aspros () ကို အသုံးပြုခြင်းသည် Form field ကိုအချည်းနှီးဖြစ်စေရန်သေချာစေသည်။
<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">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အသုံးပြုသူ:'</span></span><span> . </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>];
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အသုံးပြုသူ未提交。'</span></span><span>;
}
</span></span>
Array Elements များကိုစစ်ဆေးပါ။ array ရှိသော့ချက်ရှိ သည့် သော့သည်တည်ရှိပြီးတန်ဖိုး မရှိသေးပါ ။
<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-string">'John'</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-literal">null</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">$arr</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-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-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'နံမယ်未设置。'</span></span><span>;
}
</span></span>
အရာဝတ်ထုဂုဏ်သတ္တိများကိုစစ်ဆေးပါ ။
<span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">User</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
}
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">User</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">$user</span></span><span>->name)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အသုံးပြုသူ:'</span></span><span> . </span><span><span class="hljs-variable">$user</span></span><span>->name;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အသုံးပြုသူ未设置。'</span></span><span>;
}
</span></span>
စဉ်ဆက်မပြတ်သတ်မှတ်ထားခြင်းရှိမရှိကို သတ်မှတ်ခြင်း () ကို သတ်မှတ်ရန်အသုံးပြုသည်။
isiveret () variable ကို set နှင့် null မဟုတ်ကြောင်းစစ်ဆေးရန်အသုံးပြုသည်, variable ကိုစစ်ဆေးရန်သင့်လျော်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်သင့်လျော်သော function ကိုရွေးချယ်ခြင်းလိုအပ်ချက်များနှင့်အညီရွေးချယ်ခြင်းသည် code ၏အားကောင်းသောနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေနိုင်သည်။ အကယ်. သင် သတ်မှတ်ထားသော () ကို အမြဲတမ်းသတ်မှတ်ထားသည့်အခါ () ကိုစစ်ဆေးပါက, အကယ် . သင်သည် variable များကိုစစ်ဆေးပါက,
<span><span><span class="hljs-comment">// ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်သောအောက်ပါအပိုင်း</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>