广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2293 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.014746 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言