整理了一下我的問(wèn)題,請(qǐng)高手幫忙解答一下
<?php
$p?= “PII”;?
define($p,3.14);??
echo?$p;?//?1.?這里為什么輸出會(huì)是PII,define?不起作用了?
//?2.?先定義p為字符串 PII,?后面又定義它為常量3.14,可以這樣用?
輸出結(jié)果是 PII
<?php
define($p,3.14);??
echo?$p;?//?這樣寫(xiě),?直接報(bào)錯(cuò),?為什么?
//?我開(kāi)始的理解是?$p未聲明,?但是下面的例子又可以正常顯示,?這兩個(gè)例子唯一的區(qū)別是?$p和?“PI”
?
<?php
define("PI",3.14);?//?事先未對(duì)PI進(jìn)行聲明
// 這里其實(shí)也有問(wèn)題, PI為字符串, ?不是變量 , 字符串 能定義為一個(gè)數(shù)值? 感覺(jué)很奇怪。
echo?PI;
echo?"<br?/>";
能正常輸出,?結(jié)果為??3.14
?
<?php
$p?=?"PII";???
define($p,3.14);???//按道理,?執(zhí)行到這一步,?p的值應(yīng)該是?3.14?而不是?PII了
echo?$p.”<br/>“;?//這里為什么輸出會(huì)是PII,?$p=3.14?的作用去哪了?
echo?PII;??//?PII不是應(yīng)該只是一個(gè)字符串??怎么成一個(gè)變量了
echo?"<br?/>";
輸出結(jié)果為:
PII
3.14
2016-12-29
其實(shí)這就是兩種定義常量的方式,首先第一種很直觀,也很好理解:define("PI",3.14),這就話就是定義常量名為PI的常量并賦值3.14。
第二種定義常量的方式有些復(fù)雜,但是很靈活。$p?= “PII”;define($p,3.14); ?這兩句的第一句可以理解為定義一個(gè)變量,變量的值為PII,第二句就是定義常量的語(yǔ)句了,這時(shí)就不能再把$p當(dāng)成一個(gè)常量對(duì)待,而是把它當(dāng)成一個(gè)快捷鍵(其實(shí)常量變量都是快捷鍵,你直接找他們就能找到他們指向的值),定義常量的時(shí)候,需要用到該快捷鍵的真實(shí)值,所以需要往上面找,該快捷鍵的值,也就是PII了,所以這時(shí)候的$p就是PII。
之所以說(shuō)第一種簡(jiǎn)單,第二種靈活,是有原因的,你可以考慮一下,如果我定義了很多個(gè)常量,或者我一個(gè)常量用了很多次,現(xiàn)在突然有個(gè)情況讓你修改你的變量名,你該怎么辦?如果是第一種就需要修改每一個(gè)常量名,如果是第二個(gè)定義方法的話,就只需要修改一處就好了,就是修改常量的快捷鍵。 ?
希望能夠幫到你,你能看懂我說(shuō)的話,我想基本也能解決你的問(wèn)題了。
2016-12-27
$p?= “PII”;?
define($p,3.14); ?
define只是把$p的值變成了常量的名字
2016-12-27
define() 函數(shù)定義一個(gè)常量。
常量類(lèi)似變量,不同之處在于:
在設(shè)定以后,常量的值無(wú)法更改
常量名不需要開(kāi)頭的美元符號(hào) ($)
作用域不影響對(duì)常量的訪問(wèn)
常量值只能是字符串或數(shù)字