我通过$ _POST提供一些信息,但是当我尝试将此信息用于任何函数时,控制台会出现关于未定义变量的错误(在此示例中,$ ms_img会带来错误,以及$ con - 在conexionbbdd.php上声明的连接查询以及函数内的任何其他变量。
编辑:既不作为参数传递,也不会出现每个参数一个错误:
警告:缺少checkCost()的参数1,在第96行的C:\ wamp \ www ... \ actions \ msg_newMessage.php中调用,并在C:\ wamp \ www ... \ actions \ msg_newMessage中定义。第17行的PHP
function checkCost($con,$ms_img,$id){...}
CODE:
<?php
session_start();
include("../conexionbbdd.php");
include("../conexionapi.php");
$id = $_SESSION['id'];
$inclass = $_SESSION['inclass'];
if($_SESSION['estado'] == 'activo'){
$ms_content = $_POST['ms_content'];
$ms_img = $_POST['ms_img'];
$ms_prefix = $_POST['ms_prefix'];
$ms_phone = $_POST['ms_phone'];
function checkCost(){
$totalCost = 0;
if ($ms_img!=""){
$totalCost=2;
}
else{
$totalCost=1;
}
$checkCredits=mysqli_query($con,"SELECT us_credits FROM ws_users WHERE us_id=$id");
}
function sendMessage(){
//WHATEVER
}
if($inclass==='1'){
checkCost();
}
else{
sendMessage();
}
}else{
header('location:../login.php');
}
?>
答案 0 :(得分:0)
您可以在任何函数中访问超级全局变量,例如$ _POST。但是应该在包含文件中初始化的全局变量(例如$con
)在函数中是不可访问的。您可以将其作为参数传递。并且不使用global
关键字将全局变量注入函数。从长远来看,这可能会导致非常混乱的代码。所以你可以这样做:
function checkCost($con){
$ms_content = $_POST['ms_content'];
$ms_img = $_POST['ms_img'];
$ms_prefix = $_POST['ms_prefix'];
$ms_phone = $_POST['ms_phone'];
$totalCost = 0;
if ($ms_img!=""){
$totalCost=2;
}
else{
$totalCost=1;
}
$checkCredits=mysqli_query($con,"SELECT us_credits FROM ws_users WHERE us_id=$id");
}
但它仍然非常程序化。我建议你开始阅读OOP。