亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

整理了一下我的問題,請高手幫忙解答一下

<?php

$p?= “PII”;?

define($p,3.14);??

echo?$p;?//?1.?這里為什么輸出會是PII,define?不起作用了?

//?2.?先定義p為字符串 PII,?后面又定義它為常量3.14,可以這樣用?

輸出結果是 PII


<?php

define($p,3.14);??

echo?$p;?//?這樣寫,?直接報錯,?為什么?

//?我開始的理解是?$p未聲明,?但是下面的例子又可以正常顯示,?這兩個例子唯一的區別是?$p和?“PI”

?

<?php

define("PI",3.14);?//?事先未對PI進行聲明

// 這里其實也有問題, PI為字符串, ?不是變量 , 字符串 能定義為一個數值? 感覺很奇怪。

echo?PI;

echo?"<br?/>";

能正常輸出,?結果為??3.14

?

<?php

$p?=?"PII";???

define($p,3.14);???//按道理,?執行到這一步,?p的值應該是?3.14?而不是?PII了

echo?$p.”<br/>“;?//這里為什么輸出會是PII,?$p=3.14?的作用去哪了?

echo?PII;??//?PII不是應該只是一個字符串??怎么成一個變量了

echo?"<br?/>";

輸出結果為:

PII

3.14


正在回答

3 回答

其實這就是兩種定義常量的方式,首先第一種很直觀,也很好理解:define("PI",3.14),這就話就是定義常量名為PI的常量并賦值3.14。

第二種定義常量的方式有些復雜,但是很靈活。$p?= “PII”;define($p,3.14); ?這兩句的第一句可以理解為定義一個變量,變量的值為PII,第二句就是定義常量的語句了,這時就不能再把$p當成一個常量對待,而是把它當成一個快捷鍵(其實常量變量都是快捷鍵,你直接找他們就能找到他們指向的值),定義常量的時候,需要用到該快捷鍵的真實值,所以需要往上面找,該快捷鍵的值,也就是PII了,所以這時候的$p就是PII。

之所以說第一種簡單,第二種靈活,是有原因的,你可以考慮一下,如果我定義了很多個常量,或者我一個常量用了很多次,現在突然有個情況讓你修改你的變量名,你該怎么辦?如果是第一種就需要修改每一個常量名,如果是第二個定義方法的話,就只需要修改一處就好了,就是修改常量的快捷鍵。 ?

希望能夠幫到你,你能看懂我說的話,我想基本也能解決你的問題了。


5 回復 有任何疑惑可以回復我~
#1

rainy_li3676598 提問者

非常感謝!
2016-12-29 回復 有任何疑惑可以回復我~
#2

rainy_li3676598 提問者

一樓的發的解答我已經看懂了,不過你的更詳細, 分給你了, 哈哈
2016-12-29 回復 有任何疑惑可以回復我~
#3

enowsh 回復 rainy_li3676598 提問者

共同努力
2016-12-29 回復 有任何疑惑可以回復我~
#4

omggx

快捷鍵的解釋很清晰
2017-02-13 回復 有任何疑惑可以回復我~
#5

慕粉1853585889

第二種方式需要用到constant()函數
2017-02-24 回復 有任何疑惑可以回復我~
查看2條回復

$p?= “PII”;?

define($p,3.14); ?

define只是把$p的值變成了常量的名字

1 回復 有任何疑惑可以回復我~
#1

測試小潼

$p的值是"PII",也就是說這里define($p,3.14)相當于define("PII",3.14);了是嗎?
2017-02-18 回復 有任何疑惑可以回復我~
#2

三環十一少

對啊,就是這樣的
2017-03-07 回復 有任何疑惑可以回復我~

define() 函數定義一個常量。

常量類似變量,不同之處在于:

在設定以后,常量的值無法更改

常量名不需要開頭的美元符號 ($)

作用域不影響對常量的訪問

常量值只能是字符串或數字

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

整理了一下我的問題,請高手幫忙解答一下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號