搜尋

首頁  >  問答  >  主體

關於defined('AUTH')問題

<?php

//如果為defined('AUTH')存在AUTH常數則為true,不存取後面的exit了。如果為false則執行exit

defined('AUTH') or exit(' 存在安全因素不准存取');

?>

#為嘛輸出結果: 存在安全因素不准存取?  常數AUTH沒有賦值,怎麼直接當false而執行exit了? ?



#
益伦益伦2602 天前1363

全部回覆(1)我來回復

  • 寻觅 beyond

    寻觅 beyond2017-10-12 23:06:58

    <?php
    if(!defined('AUTH')){
    	exit("不准访问....")
    }
    ?>

    上面的程式碼和你的等價,

    你寫的註解是對的,但是你的問題好像和你的註解反了,你先搞清楚or是有個短路定理,有兩個條件a 或 b,如果a為真,不會繼續判斷b是否為真,只有當a為假時,才判斷b是否為真。 defined()相當於a,而exit()相當於b,你已經說了AUTH沒有賦值,則defined為假,判斷exit(),而exit()總是為真,所以執行exit()

    回覆
    1
  • 取消回覆