Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

การเปรียบเทียบระหว่างตัวดำเนินการ &&และ AND ใน PHP


PHP นำเสนอโอเปอเรเตอร์ที่เหลือเชื่อในการดำเนินการต่างๆ เช่น เลขคณิต การมอบหมาย การเปรียบเทียบ และอื่นๆ อีกมากมาย ...ในบทความนี้ จะให้ความสำคัญกับโอเปอเรเตอร์เชิงตรรกะ "&&" และ "AND" มากขึ้น และจะศึกษาวิธีใช้งานโดยอิงตาม ลำดับความสำคัญ ตัวดำเนินการเชิงตรรกะ "&&" และ "AND" ให้ผลลัพธ์เป็น true-or-fal ดังนั้นจึงเรียกอีกอย่างว่าตัวดำเนินการบูลีน

ก่อนดำดิ่งลึก เรามาเรียนรู้กันก่อนว่า "AND" โอเปอเรเตอร์คืออะไร? ตัวดำเนินการ "AND" จะคืนค่า จริง หากเงื่อนไขทั้งสองเป็นจริงเท่านั้น มาดูตัวอย่างเพื่อสาธิตตัวดำเนินการ "AND"

ตัวอย่าง

<ก่อน>

ผลลัพธ์:

จริง

คำอธิบาย:

เนื่องจากตัวแปร $val1 =20 และ $val2 =50 เงื่อนไข $val1 ==20 จะประเมินว่าเป็นจริง และ $val2 ==50 จะประเมินว่าเป็นจริงด้วย ดังนั้นตัวถูกดำเนินการทั้งสองเป็นจริง ผลลัพธ์ก็เป็นจริง เรามาพูดถึงตัวอย่างอื่นกัน

ตัวอย่างที่ 2:

<ก่อน>

ผลลัพธ์:

เท็จ

คำอธิบาย:

เนื่องจากเราได้ประกาศตัวแปร $a =30 และ $b =50 เงื่อนไข $a ==30 จะประเมินเป็นจริง แต่เมื่ออินพุต $b =50 ในการประกาศและในเงื่อนไข $b ==10 ซึ่งคืนค่าเท็จ ดังนั้น ผลลัพธ์การดำเนินการ AND จะเป็นเท็จ

มาถึงโอเปอเรเตอร์ "&&" แล้ว มันยังทำงานเหมือนกับโอเปอเรเตอร์ "AND" โดยจะส่งกลับค่า true ถ้าทั้งสองเงื่อนไข/ตัวถูกดำเนินการเป็นจริงในนิพจน์ ตอนนี้เรามาดูตัวอย่างด้านล่างซึ่งใช้ตัวดำเนินการ "&&"

ตัวอย่าง:

<ก่อน>

ผลลัพธ์:

จริง

คำอธิบาย:

เนื่องจากตัวแปร $val1 =25 และ $val2 =5 เงื่อนไข $val1 ==25 จะประเมินเป็น true และ pow($val2, 2) ==$val1 ประเมินว่าเป็นจริงเช่นกัน เนื่องจาก $val2=5 ยกกำลัง 2 คือ 25 ซึ่งเท่ากับ $val1 ดังนั้น '$val1 ==25&&pow($val2, 2) ==$val1' จะประเมินเป็นจริงตามตรรกะ AND ที่ระบุว่าเมื่อตัวถูกดำเนินการทั้งสองเป็นจริงเท่านั้น ผลลัพธ์ของการดำเนินการ AND จะเป็นจริง

หมายเหตุ:

ลองมาอีกกรณีหนึ่ง ถ้าเราประกาศอินพุต $val2 =20 เงื่อนไข pow($val2, 2) ==$val1 จะให้ผลลัพธ์เป็นเท็จ ดังนั้นผลลัพธ์การดำเนินการ AND จะเป็นเท็จ

ตอนนี้ให้พูดถึงการเปรียบเทียบระหว่างตัวดำเนินการ "AND" และ "&&" ในแง่ของลำดับความสำคัญ การดำเนินการจะดำเนินการตามลำดับความสำคัญของตัวดำเนินการในนิพจน์ ลำดับความสำคัญของตัวดำเนินการ '&&' อยู่ในระดับสูง และลำดับความสำคัญของตัวดำเนินการ "AND" นั้นต่ำ มาศึกษาความแตกต่างข้างต้นจากตัวอย่างด้านล่างกัน

<ก่อน>

ผลลัพธ์:

FALSETRUE

คำอธิบาย:

ผลลัพธ์ของตัวดำเนินการทั้งสองจะแตกต่างกันเมื่อตัวถูกดำเนินการเหมือนกัน นิพจน์แรกเชื่อมต่อเป็น FALSE ในขณะที่นิพจน์ที่สองระบุ TRUE แม้ว่าทั้งสองจะใช้กิจกรรมที่คล้ายคลึงกัน

นิพจน์แรก $val =$a &&$b; ระบุเป็น FALSE เนื่องจากดำเนินการ "&&" ครั้งแรก จากนั้นผลลัพธ์ที่กำหนดให้กับตัวแปร $val เนื่องจากลำดับความสำคัญของตัวดำเนินการ &&สูงกว่าลำดับความสำคัญของตัวดำเนินการ "="

นิพจน์ที่สอง $bool =$a และ $b; ประเมินเป็น TRUE เนื่องจากโอเปอเรเตอร์ "และ" มีลำดับความสำคัญต่ำกว่าโอเปอเรเตอร์ "=" ดังนั้นค่าของตัวแปร $a =10 ซึ่งอยู่ทางขวาของ =ถูกกำหนดให้กับ $val ดังนั้น $val จะเก็บ 10 แล้วตามด้วย "and " ดำเนินการภายในแต่ไม่ได้กำหนด ดังนั้น $val จะถือเป็น TRUE

เพื่อชี้แจง ความแตกต่างหลักระหว่างโอเปอเรเตอร์ "AND" และโอเปอเรเตอร์ "&&" คือลำดับความสำคัญ แต่ทั้งคู่ก็มีกิจกรรมที่คล้ายคลึงกัน