PHP-函数未在isset内返回值

PHP-函数未在isset内返回值,php,Php,我有一个函数调用find\u student\u by\u id(),其中一个函数调用arg完成下面的代码 function find_student_by_id($student_number){ global $con; $safe_student_number = prep($student_number); $sql = "SELECT * "; $sql .= "FROM studeprofile "; $sql .= "WHERE StudentNumber

我有一个函数调用
find\u student\u by\u id()
,其中一个函数调用
arg
完成下面的代码

function find_student_by_id($student_number){
  global $con;
  $safe_student_number = prep($student_number);

  $sql  = "SELECT * ";
  $sql .= "FROM studeprofile ";
  $sql .= "WHERE StudentNumber = '{$safe_student_number}'";
  $sql .= "LIMIT 1";
  $student_set = mysqli_query($con, $sql);
  confirm_query($student_set);
  if($student = mysqli_fetch_assoc($student_set)){
    return $student;
  } else {
    return null;
  }
}
如果我在页面中的任意位置调用此函数,但如果我在
isset
函数中使用它,则此函数不会返回任何

$student = find_student_by_id('id-201');
如果在isset之外使用,则给我值
echo$student['student_number']

但是如果我在
isset
中使用它,则不会返回任何值

if(isset($_POST['submit'])){
  $student_number = $student['student_number'];
}
完整的内部代码cor.php

<?php
  $student = find_student_by_id($_GET['student_number']);
  //if(!$student){
  //  redirect_to('home.php');
  //}
  //$_SESSION['sn'] = $student['StudentNumber'];
?>
<?php
  if(isset($_GET['subject_id'])){
    $subject = find_subject_id($_GET['subject_id']);
  }
  //if(!$subject){
  //  redirect_to('cor.php');
  //}

?>
<?php
  if(isset($_POST['submit'])){

  $subject_code = $subject['SubjectCode'];
  $description = $subject['Description'];
  $lec_unit = "";
  $lab_unit = "";
  $section = "";
  $labtime = "";
  $sched_time = "";
  $room = "";
  $instructor = "";
  $sem = "";
  $sy = "";
  $sn = $student['StudentNumber'];
  $term = "";
  $fn = $student['FirstName'];
  $mn = $student['MiddleName'];
  $ln = $student['LastName'];
  $course = $student['Course'];
  $yl = $student['YearLevel'];

  $sql  = "INSERT INTO registration(";
  $sql .= "SubjectCode, Description, LecUnit, LabUnit, ";
  $sql .= "Section, LabTime, SchedTime, Room, Instructor, ";
  $sql .= "Sem, SY, StudentNumber, Term, FirstName, MiddleName, ";
  $sql .= "LastName, Course, YearLevel";
  $sql .= ")VALUES(";
  $sql .= "'{$subject_code}', '{$description}', '{$lec_unit}', '{$lab_unit}', '{$section}', '{$labtime}', ";
  $sql .= "'{$sched_time}', '{$room}', '{$instructor}', '{$sem}', '{$sy}', '{$sn}', ";
  $sql .= "'{$term}', '{$fn}', '{$mn}', '{$ln}', '{$course}', '{$yl}'";
  $sql .= ")";
  $cor = mysqli_query($con, $sql);
  if($cor){
    redirect_to('cor.php?student_number='.$subject_code);
  } else {
    die(mysqli_error($con));
  }

  }
?>


<div>
  Student Number : <?php echo $student['StudentNumber']; ?><br />
  Name: <?php echo fullname($student); ?>

  <a class="popup" href="search-subject-cor.php">Add subject</a>

  <br /> <br />
  <p><?php echo $subject['SubjectCode']; ?></p>
  <p><?php echo $subject['description']; ?></p>

  <form method="post" action="cor.php">
    <input type="submit" name="submit" value="Add subject" />
  </form>

与之相比

<form method="post" action="cor.php">
              ^

^

并删除问题:)

但您在功能范围内或功能范围外使用此
isset
的位置您检查了谁设置了$student['student\u number'”?我没有看到任何表格,您使用
isset
的目的是什么?我使用一个页面来处理表单中的数据,因此我需要使用
isset
来处理错误
(未定义变量)
如果您要使用
$student\u number
则声明和初始化(
$student\u number=0
)是一种很好的做法变量超出if条件,然后覆盖该值。否则,您将使用可能未声明的变量。
<form method="post" action="cor.php">
              ^