亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP:無法在父函數中使用函數變量

PHP:無法在父函數中使用函數變量

PHP
紫衣仙女 2023-08-19 16:51:39
我使用兩個函數。函數1(“setImageCopyrightsPost”)將一些信息寫入數組(“img_copyrights”),然后調用函數2(“getPostImageThumbnailByID”),然后將函數2中設置的變量(“img_thumbnail”)寫入數組以及。但最后一步不起作用。function setImageCopyrightsPost($db_link_backend, $img){    global $img_copyrights;    global $img_thumbnail;    $img_copyrights["post-". $img['id']]['title'] = $img['title'];    $img_copyrights["post-". $img['id']]['copyright'] = $img['copyright'];    getPostImageThumbnailByID($img['id']);    $img_copyrights["post-". $img['id']]['url'] = IMG_URL_PATH . $img_thumbnail;}function getPostImageThumbnailByID($img_id){    global $img_thumbnail;    unset($img_thumbnail);    $sql_get_img_meta_by_id = "SELECT ...'";    // some SQL-stuff    if ($num_rows_get_img_meta_by_id == 1 && mysqli_errno($db_link_backend) == 0) {        $row_get_img_meta_by_id = mysqli_fetch_array($result_get_img_meta_by_id);        // get data from image meta        unset($preg_matches);        preg_match("/(\"thumbnail\")(.+?)(\"file\")(.+?)(\")(.+?)(\")(.+?)(\"width\";i:)(.+?)(;)(.+?)(\"height\";i:)(.+?)(;)/m", $row_get_img_meta_by_id['meta_value'], $preg_matches);        // set name        $img_thumbnail = $preg_matches[6];        echo $img_thumbnail;        return true;    }    }我遺漏了 sql-stuff,因為我知道它正在工作,因為它echo $img_thumbnail正在工作 - 變量正確打印在頁面上。但是當我使用時var_dump($img_copyrights),只設置了“標題”和“版權”,“url”為“NULL”。看來,函數 1 不能使用函數 2 中設置的變量 $img_thumbnail。是我犯了錯誤還是正?,F象?
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

您不能像在函數中那樣定義全局變量,它們必須首先在全局范圍內定義。正確的方法是從第二個函數返回并在第一個函數中分配返回值:


function setImageCopyrightsPost($db_link_backend, $img)

{

    //remove

    //global $img_thumbnail;


    //code


    $img_thumbnail = getPostImageThumbnailByID($img['id']);  // assign the return


    $img_copyrights["post-". $img['id']]['url'] = IMG_URL_PATH . $img_thumbnail;


}


function getPostImageThumbnailByID($img_id)

{

        //remove

        //global $img_thumbnail;

        //unset($img_thumbnail);


        //code


        $img_thumbnail = $preg_matches[6];


        return $img_thumbnail;  // return the variable


}

一種黑客方法是將所有實例替換為$img_thumbnail,$GLOBALS['img_thumbnail']但不要這樣做。


查看完整回答
反對 回復 2023-08-19
  • 1 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號