廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 2427 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
terryshao
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x72
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[PHP][討論] (問題2):奇怪的寫法?這樣合理嗎?
原始碼:
<html>
<head><title>預設參數值</title>
<?
// 函數計算體積
function volume($length, $width=2, $height=3) {
  print $length."x".$width."x".$height."= ";
  return $length * $width * $height;
}
?>
</head>
<body>
<?
// 指定變數值
$l = 10;   $w = 12;   $h = 15;
// 計算盒子體積
print "盒子體積: ".volume($l, $w, $h)."<br>";
print "盒子體積: ".volume($l, $w)."<br>";
print "盒子體積: ".volume($l)."<br>";
?>
</body>
</html>

前面使用$length * $width * $height
後面卻用$l, $w, $h
這是合理的嗎?
程式要怎麼自己判斷哪個對應哪個??



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2006-08-04 11:28 |
ety 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x719
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我們把程式分為兩個區域來看,
function volume 視為一個區域,
body 內的 PHP code 視為另一個區域.

在第一個區域裡, $length, $width, $height 這三個是 volume 這個 function 的"參數",
而 body 內的 $l, $w, $h 則是另一個區域的"變數"!
將第二區的變數傳給第一區的 function 當參數, 哪裡不合理了?


獻花 x0 回到頂端 [1 樓] From:台灣和信超媒體 | Posted:2006-08-07 07:38 |
terryshao
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x72
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

可是像我之前學的C++不是都是應該要相對應...也就是用一樣的代名詞才可以??
而且就算是兩個區域...但是難保他不會對映錯誤??


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2006-08-10 22:47 |
ety 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x719
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

首先要說明一下, PHP 是以 Perl 為基礎的, 並不用特別地去宣告新變數以及其資料型態.
除此之外跟 C 語言應該沒有什麼太大的不同.
第一區不是一個函式嗎? 這個函式不是需要三個輸入參數嗎 ? ($length, $width, $height )
這三個參數是在那個函式裡宣告的, 怎能在別區用呢? 這跟 C 語言是一樣的, 沒有不同呀!
你在別區就算宣告了一樣名字的變數, 其值也一定不會一樣, 因為他們會分別放在不同的記憶體位址.

電腦在讀這程式時, 在第一區會分配記憶體位址給 $length, $width, $height 來儲存這三個參數的值, 目前是 NULL.
到了第二區又會在多分配三個記憶體位址給 $l, $w, $h 來儲存這三個變數的值, 目前是 $l = 10, $w = 12, $h = 15. 就算你把這三個變數取名為 $length, $width, $height 這三個, 記憶體位址還是一樣由電腦新給的, 不是之前的那三個. 想想看, 如果有可以像你所說的去取代變數, 那是多麼可怕的事呀, 萬一讀錯了記憶體位址, 你的作業系統可能就會出錯呢!

接下來, 呼叫到了第一區的函式了, 那個函式是要三個參數當輸入值的, 所以我們把$l, $w, $h傳過去給它當參數. 然後那個函式收到了, 就會把 $l 的值 copy 到 $length, $w 的值 copy 到 $width, $h 的值 copy 到 $height 去, 然後用 $length, $width, $height 這個參數來處理, 這程式就是這樣地執行的.

不懂的話再問, 我想這裡有很多人樂意與你討論的!


獻花 x0 回到頂端 [3 樓] From:台灣和信超媒體 | Posted:2006-08-11 11:18 |
terryshao
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x72
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

.............我正在消化大大講的
腦筋有點打結....太久沒看C++...
我在回去翻一下好了...
感恩


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2006-08-12 15:39 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.068492 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言