作者LPH66 (ゆびさきミルクティー)
看板Web_Design
标题Re: [问题] php function的变数周期@@a
时间Fri Apr 7 12:03:12 2006
※ 引述《grassboy2 (活力花俏草儿Grassboy大렩》之铭言:
: 啊啊…话说最近在重写一个网站…
: 想说有用到mysqli_query的…
: 都能够利用一个function,让mysqli_query一出现错误就终止php程式…
: 以下是我实作的方式:
: function mysqli_query_new($link,$query) //执行mysqli_query,有错便终止程式
: {
: $result=mysqli_query($link,$query);
: if(mysqli_errno($link)){
: echo "MySQL执行过程错误,程式强行中止:<br>".
: "错误讯息为:".mysqli_error($link)."<br><br>";
: exit();
: } else {
: return $result;
: }
: }
: 问题来了@@~
: 如果…用这个方法去作每个query…
: 那麽当mysqli_query_new这个function return了一个result...
: 那在mysqli_query_new里的result会被free掉吗?
: 这个不知道要怎麽爬文...
: 所以如果op了^^"真的很抱歉耶^^"
其实有点看不懂你在问什麽....@@
不过如果 你在主程式里这样用:
$queryresult=mysqli_query_new($somelink,$somequery);
那麽$result的值就会被接到$queryresult里面
你要作动作时就可以用$queryresult去做
那你其实可以不用管到底$result的生命周期是到哪
--
我都用这样来除query的错的
就是写一个函式 在函式中echo出注解 表示我query了啥
然後把实际query的结果丢出来
--
还是你是想要知道当你连续做
$query1=mysqli_query_new($somelink,$somequery);
$query2=mysqli_query_new($someotherlink,$someotherquery);
这样时 $query1的值会不会不见吗?
理论上是不会 因为$query1是把它回传的结果接下来这样
所以等於是把$result的值复制一次
(不然我的印象中好像local变数出了函式就不见了不是吗?)
那两次呼叫的$result该是独立的
--
'Oh, Harry, dont't you
see?' Hermione breathed. 'If she could have done
one thing to make
absolutely sure that every single person in this school
will read your interview, it was
banning it!'
---'Harry Potter and the order of the phoenix', P513
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.240.54
1F:推 grassboy2:喔喔!所以…复制过一次後…mysqli_query_new里的result 04/07 12:07
2F:→ grassboy2:就会被自动free掉了吗@@a 04/07 12:07
3F:推 grassboy2:对了…这种写法比较建议debug时才用吗? 04/07 12:23
4F:→ grassboy2:还是说其实对主机的负担没有增加多少呢? 04/07 12:24