批改状态:合格
老师批语:
下载地址:https://getcomposer.org/download/
创建 composer.bat:@php "%~dp0composer.phar" %*
php composer.phar -V
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
<!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>登录</title><style>div {width: 10em;margin: 15% auto;}p {margin: 0.5em 0;}input {width: 100%;height: 1.8em;}#captcha,img {width: 46%;height: 1.8em;vertical-align: middle;}input[type="button"]:hover {cursor: pointer;}span {display: block;height: 1.8em;line-height: 1.8em;text-align: center;color: red;}</style></head><?phpsession_start();// 调用验证码包的自动加载文件require dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';use Gregwar\Captcha\CaptchaBuilder;// 创建验证码对象$builder = new CaptchaBuilder;// 调用方法生成验证码$builder->build();?><body><div><p><input type="text" name="username" id="username" placeholder="输入用户名"></p><p><input type="password" name="password" id="password" placeholder="输入密码"></p><p><input type="text" name="captcha" id="captcha" placeholder="输入验证码" onblur="check_captcha()"><img src="<?= $builder->inline() ?>" /></p><p><span></span></p><p><input type="button" value="登 录" onclick="login()"></p></div></body><script>async function check_captcha() {// 获取输入的验证码let captcha = document.querySelector("#captcha").value;url = `Request_ContAroller.php?captcha=${captcha}`;const response = await fetch(url)response.json().then()}</script></html>
<?phpuse aDemo as GlobalADemo;/*** 接口是定义,类(抽象类)是实现* interface的目的是建立通用的标准,只有实现了这些标准,才能被认为实现了接口*/// 为计算机(主程序)扩展功能,计算机官方结出一种公开标准// 定义USB接口interface USB{// 接口只能定义常量和抽象方法// 抽象方法,必须是公开的function run();}// 为计算机扩展usb键盘功能,实现usb接口class usbKey implements USB{// 接口中有几个抽象方法都必须在类中实现,否则为抽象类。function run(){return "运行USB键盘";}}class usbMemo implements USB{function run(){return "运行U盘";}}// 计算机主程序class computer{// 创建使用接口类方法function useUsb($driver){// 运行接口通用方法return $driver->run();}}$com = new computer;echo $com->useUsb(new usbKey);echo $com->useUsb(new usbMemo);/*** 1. 接口中定义的均是公开的抽象方法,类属性不能定义在接口中,类常量可以。* 2.一个工作类必须将接口中的所有方法按照自己的需求去实现,否则该类要定义成抽象类。* 3. 抽象类中可以有抽象方法和普通方法,不能被实例化。*/// 定义接口interface aDemo{const FILM_NAME = "海底总动员";public static function get_msg(...$msg);public static function play($a, $b);}// 抽象类:没有实现接口中所有的方法,因此为抽象类abstract class film implements aDemo{public static function get_msg(...$msg){return print_r($msg, true);}}// 工作类class work extends film{public static function play($a, $b){return '今日票房:' . $a * $b . '元';}}echo '<br>' . aDemo::FILM_NAME . '<br>';echo film::FILM_NAME . '<br>';echo work::FILM_NAME . '<br>';echo film::get_msg('尼莫', '小鱼', '大海') . '<br>';echo work::get_msg('尼莫', '小鱼', '大海') . '<br>';echo work::play(6000, 45);/*** php中,类的继承只能是单继承,即类C不能同时继承类A和类B,那么对于对特定类的功能进行拓展,可以use trait,还可以使用接口来实现类似于多方继承的好处,。* 先继承后实现* 工作类 extends 普通类(抽象类)implements 接口1,接口2....接口n*//*** oop 三大特性 封装 多态 继承* 多态性是指同一操作作用于不同类的实例,将产生不同的效果,即不同类的对象收到相同的消息时,得到不同的结果。在PHP中实现多态的方式有2种:通过继承实现多态和通过接口实现多态。多态指的是方法的重写。*//*** 什么时候使用抽象类,接口,trait?* 1. 如果你想使用模型,为多个紧密想关的对象提供规范,就使用抽象类;如果你想创建一项功能,随后在多个不想管的对象中实现,就使用接口。* 2. 如果你的对象必须从多个源头继承行为,就使用接口;php中的类可以实现多个接口,但只能继承一个类(抽象类)。* 3.如果你知道所有类将共享一个方法实现时,就使用抽象类,并在抽象类中实现这个方法。你不能在接口中实现方法。* 4. 如果所有类都共享一段相同的代码,就使用trait。**/
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号