Re: [問題] php function的變數週期@@a

看板Web_Design作者 (ゆびさきミルクティー)時間18年前 (2006/04/07 11:56), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

04/07 12:07, , 1F
喔喔!所以…複製過一次後…mysqli_query_new裡的result
04/07 12:07, 1F

04/07 12:07, , 2F
就會被自動free掉了嗎@@a
04/07 12:07, 2F

04/07 12:23, , 3F
對了…這種寫法比較建議debug時才用嗎?
04/07 12:23, 3F

04/07 12:24, , 4F
還是說其實對主機的負擔沒有增加多少呢?
04/07 12:24, 4F
文章代碼(AID): #14DUBomR (Web_Design)
文章代碼(AID): #14DUBomR (Web_Design)