php 中 define 定義常量和單雙引號問題
來源:互聯網
上載者:User
一、define定義常量問題 <?php define('DATABASE', 'MYSQL'); define('DATABASE_USER', 'ROOT'); define('DATABASE_PASSWORD', 'PASSWORD'); ?> 直接使用"DATABASE"常量,代表的就是"MYSQL"。 $arr = array('fruit'=>'apple','veggie'=>'carrot'); define('fruit','veggie'); print $arr['fruit']; // apple print $arr[fruit]; // carrot * 注意 :[] 中沒有引號。php會自動把key值當作常量來解析,然後去記憶體中找對應的常量,於是找到了fruit,然後解析key值。然後再去記憶體中找常量,沒找到veggie,然後就把veggie當作真正的key值,找到對應的值。 二、單雙引號問題 error_reporting(E_ALL); $arr = array('fruit'=>'apple','veggie'=>'carrot'); define('fruit','veggie'); print $arr['fruit']; echo '<br/>'; //apple print $arr[fruit]; echo '<br/>'; //carrot print "hello $arr[fruit]"; echo '<br/>'; // apple print "hello {$arr[fruit]}"; echo '<br/>'; // hello carrot print "hello {$arr['fruit']}"; echo '<br/>';// hello apple //print "Hello $arr['fruit']"; // 有錯誤 //print "hello $_GET['foo']"; // 有錯誤 print "Hello " . $arr['fruit']; // Hello apple 注意: 數組方括弧中如果沒有加引號,php會首先按照常量來解析。