简体   繁体   中英

Call variable from outside of function

How can I call $attach_id from outside of a function?

function kv_handle_attachment($file_handler, $post_id, $set_thu = false) {
    // check to make sure its a successful upload
    if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK)
        __return_false();

    require_once(ABSPATH . "wp-admin" . '/includes/image.php');
    require_once(ABSPATH . "wp-admin" . '/includes/file.php');
    require_once(ABSPATH . "wp-admin" . '/includes/media.php');

    $attach_id = media_handle_upload($file_handler, $post_id);
    return $attach_id;
}

echo $attach_id;

when you get value from function then you need to call this function this is your code, this is demo code which return 12

<?php
function kv_handle_attachment($file_handler, $post_id)
{
    return 12;
}

$attach_id = kv_handle_attachment('1', 12);
echo $attach_id;

so update your code like this

<?php
function kv_handle_attachment($file_handler, $post_id, $set_thu = false)
{
    // check to make sure its a successful upload
    if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();

    require_once(ABSPATH . "wp-admin" . '/includes/image.php');
    require_once(ABSPATH . "wp-admin" . '/includes/file.php');
    require_once(ABSPATH . "wp-admin" . '/includes/media.php');

    $attach_id = media_handle_upload($file_handler, $post_id);
    return $attach_id;
}

so call your function

$attach_id = kv_handle_attachment($file_handler, $post_id);

or this is more clear option

$attach_id = kv_handle_attachment($yourdatahere); //$yourdatahere update as your parameter which you need to send but your first 2 parameter is required so need to send this must but not empty 
echo $attach_id; 

You can use a global variable.

function kv_handle_attachment($file_handler,$post_id,$set_thu=false) {
    global $attach_id;
    // check to make sure its a successful upload
    if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();

    require_once(ABSPATH . "wp-admin" . '/includes/image.php');
    require_once(ABSPATH . "wp-admin" . '/includes/file.php');
    require_once(ABSPATH . "wp-admin" . '/includes/media.php');

    $attach_id = media_handle_upload( $file_handler, $post_id );
    return $attach_id;
}

global $attach_id;
echo $attach_id;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM