php
  • function
  • 2010-12-03 91 views 0 likes 
    0

    我試圖讓這個函數在返回服務器上文件位置的地方工作。在編碼的底部,我展示了我如何在其他頁面中顯示編碼。我是否正確回顯編碼的最後一行以在調用函數時顯示它?調用函數,呼應結果

    function record_loc($id,$type) 
    { 
        $recdir = mysql_result(mysql_query(
         "SELECT rec_loc FROM names WHERE com_id = '".$id."'"), 0 , "rec_loc"); 
    
        $ver = ($type == 'n' ? '-n.wav' : '-s.wav'); 
        // echo '/doc_rec/' . $recdir . '/' . $id . $ver; 
    return '/doc_rec/' . $recdir . '/' . $id . $ver; 
    } 
    
    // echo record_loc(120,n); or <?= record_loc(120,n) 
    ?> 
    

    回答

    2

    你的例子,實際上,輸出的數據(只是由於語句簡單),但什麼是真正發生的事情它的功能被呼應首先,執行回聲[在本例中評論]。例如

    function return_some_value(){ 
        return 'abc'; 
    } 
    function echo_some_value(){ 
        echo 'def'; 
    } 
    
    echo return_some_value() . echo_some_value(); 
    

    輸出會導致echo_some_value首先顯示(並返回null),然後傳遞給echo以進一步執行。例如

    defabc 
    

    (雖然你會期望abcdef

    編輯每在評論請求,這個答案編輯

    function record_loc($id,$type) 
    { 
        if (($query = mysql_query("SELECT rec_loc FROM names WHERE com_id = '".(int)$id."'")) !== false) 
        { 
        if (mysql_num_rows($query) > 0) 
         return '/doc_rec/'.mysql_result($query,0,'rec_loc').'/'.$id.'-'.($type=='n'?'n':'s').'.wav'; 
        } 
        return 'Error Not Found'; 
    } 
    

    請注意,您應該檢查您的網絡連接,檢查爲sql錯誤和驗證輸入。我沒有用盡所有的檢查,只是讓你的代碼做你所要求的。

    3

    存在使用return和輸出操作等echo, print, print_r, sprint等之間的功能差異

    在這裏看到return和此處echo

    即:

    '返回' 返回其參數值爲 t他函數調用

    「迴響」 輸出一個或多個字符串

    所以,回報於你的函數將結果傳遞的價值,你可以給一個變量,即$myvar=myfunction();,你就那麼需要回聲$myvar(或做回聲myfunction();),而在你的函數回聲,只要有myfunction();將完成相同。當你想通過其他操作傳遞一個函數的結果時使用return。

    1

    ,或者返回的路徑和使用echo record_loc(120,n);

    或者你回聲路徑中的回報(如樣品),並使用<?php record_loc(120,n) ?>

    3

    我不知道如果我理解這個問題。但是,如果函數不返回任何內容,則無法回顯函數。

    下面是一個簡單的函數返回一個值:

    <?php 
    function do_stuff() { 
        return rand(1, 10); 
    } 
    
    echo do_stuff(); 
    ?> 
    
    <?= do_stuff() ?> 
    
    +0

    當函數裏面的回聲我必須把變量也放在...echo record_loc(120,n);在函數內部,<?= record_loc(120,n)?>在我的其他頁面中 – acctman 2010-12-03 15:15:02

    +0

    `<?= do_stuff()?>`是<?php echo do_stuff()的縮寫。 ?> – demux 2010-12-03 15:45:08

    相關問題