繁体   English   中英

PHP函数调用

[英]PHP function call

我想创建函数display()来显示所有先前输入的名称和标记的排序列表。 名称参数应设置为可选。 我无法在适当的位置调用该函数。 请注意,该代码在没有该功能的情况下起作用。 我希望它通过功能display()起作用; 请帮忙。 谢谢

这是我的代码:

<?php

session_start();

if(isset($_POST['lname']) && isset($_POST['marks'])){
    if ($_POST['marks']<=100){
        $_SESSION['info'][] = array($_POST['lname'] => $_POST['marks']);
    }elseif (isset($_SESSION['info'])) {
        $marks = array();
        foreach($_SESSION['info'] as $key =>$values){
            foreach($values as $name=>$mark){
                $marks[$key] = $mark;
            }
        }
        display();

        function display(){ 
            arsort($marks);
            foreach($marks as $key => $value){
                foreach($_SESSION['info'][$key] as $name => $marks){
                    printf("Name: %s &nbsp; Marks: %d &nbsp Grade: %s <br>", $name, $marks, CalcGrade($marks) );
                }
            }
        } 
    }
}

这样尝试

  session_start();

 if(isset($_POST['lname']) && isset($_POST['marks'])){        
if ($_POST['marks']<=100){
  $_SESSION['info'][] = array($_POST['lname'] => $_POST['marks']);

 }elseif (isset($_SESSION['info'])) {
  $marks = array();
  foreach($_SESSION['info'] as $key =>$values){
       foreach($values as $name=>$mark){
            $marks[$key] = $mark;
   }
 }
 display($marks);

function display($marks){ 
arsort($marks);
 foreach($marks as $key => $value){
 foreach($_SESSION['info'][$key] as $name => $marks){
 printf("Name: %s &nbsp; Marks: %d &nbsp Grade: %s <br>", $name, $marks, CalcGrade($marks) );
      }
    }
  } 
}
  }

由于每个函数本身都起作用,因此您必须传递使用的变量,或者从全局名称空间获取它。

function display() {

    global $marks; 

    arsort($marks);

    ......
}

要么

function display($marks) {

    arsort($marks);

    ......
}

在函数中定义$ marks。在PHP函数中,您上面编写的代码无法获取$ marks之外的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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