[英]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 Marks: %d   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 Marks: %d   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.