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
之间的区别。谢谢!我用事先准备好的声明也是安全的