第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

請教大神們一個問題——變量傳值問題

請教大神們一個問題:
直接上代碼吧,
< ?php
$p="";
//定義圓周率的兩種取值
define("PI1",3.14);
define("PI2",3.142);
//定義值的精度
$height = "中";
//根據(jù)精度返回常量名,將常量變成了一個可變的常量
if($height == "中"){
? ?$p = "PI1";
}else if($height == "低"){
$p = "PI2";
}
$r=1;
$area=constant($p)*$r*$r;
$area2=$p*$r*$r;//直接將得到的變量值進行計算。
echo $area;
echo "</br>";
echo $area2;//搞不懂為什么在這里$p的值還是null,沒有傳入呢?
?>
為什么顯示的結(jié)果會是:
3.14
0
呢?怎么不是
3.14
3.14
呢?

正在回答

3 回答

首先,非常感謝sophia的耐心解答,也非常感謝她的代碼!
<?php

$foo? =? 1? +? "10.5" ;????????????????
echo $foo."</br>";
$foo? =? 1? +? "-1.3e3" ;??????????
echo $foo."</br>";
$foo? =? 1? +? "bob-1.3e3" ;????????
echo $foo."</br>";
$foo? =? 1? +? "bob3" ;???????????????
echo $foo."</br>";
$foo? =? 1? +? "10 Small Pigs" ;??????
echo $foo."</br>";
$foo? =? 4? +? "10.2 Little Piggies" ;?
echo $foo."</br>";
$foo? =? "10.0 pigs "? +? 1 ;??????????
echo $foo."</br>";
$foo? =? "10.0 pigs "? +? 1.0 ;????????????
echo $foo."</br>";
?>
輸出結(jié)果是:
11.5
-1299
1
1
11
14.2
11
11
根據(jù)這個輸出結(jié)果,我知道了:
1、開始的那段代碼是將字符串“PI1”本身賦值給了$p;
2、當(dāng)字符串與整型、單精度浮點型、雙精度浮點型的數(shù)據(jù)一起四則運算(+-*/)時。首先要將字符串進行一種轉(zhuǎn)化,運算結(jié)果有以下幾種情況:
一、當(dāng)字符串首不包含數(shù)字,字符串默認(rèn)轉(zhuǎn)化為數(shù)值0。
二、當(dāng)字符串首包含數(shù)字時,如果是浮點型數(shù)據(jù),且小數(shù)部分不為0,那么默認(rèn)的運算結(jié)果會自動轉(zhuǎn)化為浮點型數(shù)據(jù)。
三、當(dāng)字符串首包含數(shù)字時,如果是浮點型數(shù)據(jù),且小數(shù)部分為0,那么默認(rèn)的運算結(jié)果就會顯示為整型數(shù)據(jù)(系統(tǒng)默認(rèn)變量的類型)。
3、字符串中間有數(shù)值,不影響上面1、2點的結(jié)果,即只要字符串首不包含數(shù)值,字符串還是轉(zhuǎn)化為0.
4、如果變量被賦值為字符串,沒有“.”連接運算符或者constant()運算符的干預(yù),則對它進行運算時,默認(rèn)會將它轉(zhuǎn)化為數(shù)值進行運算。

1 回復(fù) 有任何疑惑可以回復(fù)我~

$area2=$p*$r*$r;這個地方$p參與了運算,相當(dāng)于一個字符串被當(dāng)做一個數(shù)值來取值,此種情況下:

如果該字符串沒有包含 '.','e' 或 'E' 并且其數(shù)字值在整型的范圍之內(nèi)(由 PHP_INT_MAX 所定義),該字符串將被當(dāng)成 integer 來取值。其它所有情況下都被作為 float 來取值。?

該字符串的開始部分決定了它的值。如果該字符串以合法的數(shù)值開始,則使用該數(shù)值。否則其值為 0(零)。合法數(shù)值由可選的正負(fù)號,后面跟著一個或多個數(shù)字(可能有小數(shù)點),再跟著可選的指數(shù)部分。指數(shù)部分由 'e' 或 'E' 后面跟著一個或多個數(shù)字構(gòu)成。

參考以下代碼,對照運行結(jié)果,再理解一下:

<?php
$foo??=??1??+??"10.5"?;?????????????????
$foo??=??1??+??"-1.3e3"?;???????????
$foo??=??1??+??"bob-1.3e3"?;?????????
$foo??=??1??+??"bob3"?;????????????????
$foo??=??1??+??"10?Small?Pigs"?;???????
$foo??=??4??+??"10.2?Little?Piggies"?;??
$foo??=??"10.0?pigs?"??+??1?;???????????
$foo??=??"10.0?pigs?"??+??1.0?;?????????????
?>


1 回復(fù) 有任何疑惑可以回復(fù)我~

這個地方你沒有搞清楚的是$p的值究竟是什么,echo一下$p的值,你就明白了。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

昱昱

我 echo了是PI1,但是我還是不太明白
2015-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

sophia_yu 回復(fù) 昱昱

$p的值是字符串“PI1”
2015-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#3

我是最棒的程序員 提問者

非常感謝您的回答,讓我受益匪淺啊!
2015-01-06 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
PHP入門篇
  • 參與學(xué)習(xí)       456319    人
  • 解答問題       6529    個

PHP入門教程輕松學(xué)習(xí),行業(yè)大牛幫您快速掌握PHP編程基礎(chǔ)知識。

進入課程

請教大神們一個問題——變量傳值問題

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號