Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 可以同时使用echo和return-in功能吗_Php_Function - Fatal编程技术网

Php 可以同时使用echo和return-in功能吗

Php 可以同时使用echo和return-in功能吗,php,function,Php,Function,我只是想知道是否可以使用echo和return来代替一个函数 下面的代码是我的函数之一 if(!function_exists("un_block_ad_ajax")) { function un_block_ad_ajax() { global $db; $is_admin = is_admin(); $check_user = true; $request = $_POST["data"]["request"] ??

我只是想知道是否可以使用
echo
return
来代替一个函数

下面的代码是我的函数之一

if(!function_exists("un_block_ad_ajax")) {

    function un_block_ad_ajax() {
        global $db;
        $is_admin = is_admin();
        $check_user = true;
        $request = $_POST["data"]["request"] ?? "";
        if(!in_array($request,["block","publish"])) {
            return false;
        }
        $ad_id = $_POST["data"]["ad_id"] ?? "";
        $ad_id = (int) $ad_id;
        if(empty($ad_id)) {
            return false;
        }

        if($is_admin === true) {
            $check_user = false;
        }

        if($check_user === true) {
            if(is_login() === false) {
                return false;
            }
            $get_ad_info = $db->select("SELECT ad_publisher FROM ads WHERE id = ? LIMIT 1",[$ad_id],["%i"]);
            $get_ad_info = $get_ad_info[0];
            if($get_ad_info["ad_publisher"] != is_login()->id) {
                // User-undesired activity
                return false;
            }
        }

        $update_status = $db->update("ads",["ad_status" => $request],["%s"],["id" => $ad_id],["%i"]);
        if($update_status) {
            echo json_encode(["success" => true]);
        }
        return true;
    }

}
我从一个文件调用函数

$method = $_POST["method"] ?? : "";
if(!empty($method)) {
    $allowed_methods = array(
        "signup_ajax",
        "signin_ajax",
        "add_ad_ajax",
        "upload_ad_image",
        "send_message",
        "get_message",
        "get_cnv",
        "del_add_to_fav",
        "delete_ajax",
        "un_block_ad_ajax",
    );
    if(in_array($method,$allowed_methods)) {
        if(call_user_func($method) === false) {
            exit(http_response_code("400"));
        }
    }else{
        exit(http_response_code("404"));
    }
}else{
    exit(http_response_code("404"));
}

因此,正如您在代码中看到的,我需要在技术上使用return和echo,您可以根据需要进行操作,但是,我建议您维护一个标准,如:

假设您现在希望将true返回到操作,但明天您需要true和一组完整的数据,例如更新的内容

您可能希望为您的应用程序构建一个通用响应,您可以使用相同的函数(或逻辑)来读取最终可能得到的每个响应

包含以下内容的回复:

{
 'success' => true,
 'message' => [...],
 'visibleToHumans' => true,
 'content' => [...]
}
您可以拥有一个处理请求响应的UI,该UI可以根据成功读取内容

额外: 我想建议您查找PDO语句,以确保您的查询安全


如果你愿意,当然可以。不过,它将函数与UI紧密耦合。让类/函数执行操作并返回结果(如果适用)以及在页面上显示处理输出的UI代码似乎会更干净。想象一下,如果你在快餐店的自助餐厅点了一个汉堡包,而不是第二个窗口的家伙用纸袋把你点的东西递给你,一个炸薯条厨师像库尔·艾德一样冲破墙,把汉堡直接塞进你的嘴里。在这两种情况下,你都吃了汉堡,但有一种情况下,你可以更好地控制这种情况发生的方式。这就是在此上下文中
echo
return
之间的区别。谢谢!我用事先准备好的声明也是安全的