批改状态:合格
老师批语:
除了直接调用
函数名(参数);
还可以使用如下两种调用:
call_user_func(‘函数名’,参数)call_user_func_array(‘函数名’,[数组])即使有一个参数也推荐使用这种。
数组形式的参数列表有三个来源:
1、用户自定义的函数中的参数。
2、对象方法
3、类方法
示例代码:
<?php$obj = new class(15000){public float $salary;public function __construct(float $salary){$this->salary = $salary;}};echo gettype($obj). '<br>';echo $obj->salary. '<br>';function f(string $name): string{return 'hello'. $name;};echo f('网络').'<br>';echo call_user_func('f','电脑').'<br>';class demo1 {public function hello(string $name):string{return 'hello,'.$name;}}$obj = new demo1;// echo call_user_func([$obj, 'hello'],'类').'<br>';echo call_user_func_array([$obj, 'hello'],['类da']).'<br>';class demo2 {public static function hello(string $name):string{return 'hello,'.$name;}}echo call_user_func_array(['demo2','hello'],['路人甲']);
<?phpnamespace _0809;$salary = 6000;// 流程控制:分支// 单分支echo '------单分支------'.'<br>';if ($salary <= 6000){echo "{$salary} 低于全国平均水平!<br>";echo '<br>';}$salary = 7000;// 双分支echo '------双分支------'.'<br>';if($salary <= 6000){echo $salary.'低于全国平均水平!'.'<br>';echo '<br>';}else{echo $salary.'高于全国平均水平!'.'<br>';echo '<br>';}// 双分支语法糖:三元运算符echo '------双分支语法糖------'.'<br>';echo $salary > 6000 ? $salary.'高于全国平均水平!'.'<br>'.'<br>':$salary.'高于全国平均水平!'.'<br>'.'<br>';$salary = 15000;// 多分支echo '------多分支------'.'<br>';if($salary < 0){echo $salary.'非法数值'.'<br>';echo '<br>';}elseif($salary <= 6000){echo $salary.'是全国平均水平!'.'<br>';echo '<br>';}elseif($salary > 6000 && $salary <= 20000){echo $salary.'是全国一般水平!'.'<br>';echo '<br>';}elseif($salary > 20000 && $salary <= 50000){echo $salary.'是全国中高水平!'.'<br>';echo '<br>';}else{echo $salary.'是全国顶尖水平!'.'<br>';echo '<br>';}$salary = 51000;// 多分支语法糖:switchecho '------多分支语法糖------'.'<br>';Switch(true){case $salary <= 6000:echo $salary.'是全国平均水平!'.'<br>';echo '<br>';break;case $salary > 6000 && $salary <= 20000:echo $salary.'是全国平均水平!'.'<br>';echo '<br>';break;case $salary > 20000 && $salary <= 50000:echo $salary.'是全国中高水平!'.'<br>';echo '<br>';break;default:echo "{$salary}是全国顶尖水平!<br>";echo '<br>';}

<?phpnamespace _0809;//for循环$colors = ['红','黄','蓝'];echo '数组长度'.count($colors).'<br>';$list = '<ul style="border: 1px solid red">';for($i =0; $i < count($colors); $i++){$list .= "<li>{$colors[$i]}</li>";}$list .= '</ul>';echo $list;// while循环$i = 0;$list = '<ul style="border: 1px solid yellow">';while($i < count($colors)){$list .= "<li>{$colors[$i]}</li>";$i++;}$list .= '</ul>';echo $list;// do while循环$i = 0;$list = '<ul style="border: 1px solid green">';do {$list .= "<li>{$colors[$i]}</li>";$i++;}while($i < count($colors));$list .= '</ul>';echo $list;

<?phpnamespace _0809;// $colors = ['红','黄','蓝'];// print_r($colors);// printf('<pre>%s</pre>',print_r($colors,true));// 索引数组的完整声明语法// $colors = ['0'=>'红','1'=>'黄','2'=>'蓝'];// printf('<pre>%s</pre>',print_r($colors,true));// // 关联数组,键名是字符串。// $user = ['id'=>'1','name'=>'大黄','score'=>'90'];// printf('<pre>%s</pre>',print_r($user,true));// echo '<hr>';// // 数组专用遍历foreach// // foreach($arr as $key=>$value){...}// foreach($user as $value){// echo $value.'<br>';// }// foreach($user as $key=>$value){// // echo $key.'=>'.$value.'<br>';// printf('[%s]=>%s <br>',$key,$value);// }// 二维数组// php用二维数组来表示从数据表中查询到的结果$users = [0 => ['id'=>'0','name'=>'大蓝','gender'=>'0','score'=>'91'],1 => ['id'=>'1','name'=>'大黄','gender'=>'1','score'=>'90']];// printf('<pre>%s</pre>', print_r($users,true));// foreach + table 渲染到页面$table = '<table border="1px" width="400px" cellspacing="0" cellpadding="3px" align="center">';$table .= '<caption>用户信息表</caption>';$table .= '<thead bgcolor="#ccc"><tr><th>编号</th><th>用户名</th><th>性别</th><th>分数</th></tr></thead>';$table .= '<tbody align="center">';foreach($users as $user){// print_r($user);$table .= '<tr>';$table .= "<td>{$user['id']}</td>";$table .= '<td>'.$user['name'].'</td>';$table .= '<td>'.($user['gender'] ? '女':'男').'</td>';$table .= '<td>'.$user['score'].'</td>';$table .= '</tr>';}$table .= '</tbody>';$table .= '</table>';echo $table;

流程控制的替代语法/模板语法
<?phpnamespace _0809;$stus = [['id' => 1, 'name' => '刘备', 'course' => 'js', 'score' => 83],['id' => 2, 'name' => '关羽', 'course' => 'php', 'score' => 75],['id' => 3, 'name' => '张飞', 'course' => 'js', 'score' => 52],['id' => 4, 'name' => '孙权', 'course' => 'php', 'score' => 88],['id' => 5, 'name' => '周瑜', 'course' => 'js', 'score' => 65],['id' => 6, 'name' => '孔明', 'course' => 'php', 'score' => 53],['id' => 7, 'name' => '赵云', 'course' => 'js', 'score' => 63],['id' => 8, 'name' => '马超', 'course' => 'js', 'score' => 77],['id' => 9, 'name' => '姜维', 'course' => 'php', 'score' => 93],['id' => 10, 'name' => '黄忠', 'course' => 'js', 'score' => 41],]?><style>table {width: 360px;text-align: center;border-collapse: collapse;}table caption {font-size: 1.3em;}table thead {background-color: lightcyan;}table th,table td, {border:1px solid #000;padding:5px;/* text-align: center; */}.active {color: red;}</style><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><table><caption>学生成绩表</caption><thead><th>编号</th><th>姓名</th><th>课程</th><th>成绩</th></thead><tbody><!-- 遍历数据表的内容,渲染到页面中。 --><?php foreach($stus as $stu): ?><tr><!-- <td><?=$stu['id'] ?></td><td><?=$stu['name'] ?></td><td><?=$stu['course'] ?></td><td><?=$stu['score']?></td> --><!-- <?php if($stu['score'] > 70): ?><td><?=$stu['id'] ?></td><td><?=$stu['name'] ?></td><td><?=$stu['course'] ?></td><td><?=$stu['score']?></td><?php endif ?> --><?php switch(true): ?><?php case $stu['score'] > 70: ?><td><?=$stu['id'] ?></td><td><?=$stu['name'] ?></td><td><?=$stu['course'] ?></td><td><?=$stu['score']?></td><?php endswitch?></tr><?php endforeach?></tbody></table></body></html>

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号