V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
flower2019
V2EX  ›  问与答

对于 0 基础的小白到底下面的课程是否适合?

  •  
  •   flower2019 · 2019-01-08 16:52:34 +08:00 · 505 次点击
    这是一个创建于 1959 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?PHP 是一个 PHP 标签 等到结束的时候也是?>便于 PHP 引擎知晓并运行
    **/是换行的一个注释,单行会运用双斜杠进行注释 //

    首先是一个判断
    1、if (isset($_POST['sub'])) {
    $what = $_POST['what'];
    //需要输入的数组

    Php 申明变量是以$_PSOT 来表达,这句话的 if (isset($_POST['sub'])) 意思就是要判断存不存在这个变量; post 一般是从浏览器那边提交过来的,那么 post 提交的方式会更安全一点。

    {$what = $_POST['what'];这个语句的意思就是将$_POST 接收到的变量赋值给$what 这个变量,是一种对变量的赋值,也就是说 what 的变量就等于$_POST['what']。

    $my_array = array("剪刀","石头","布");
    //获胜规则
    $guize = array(array("剪刀","布"),array("布","石头"),array("石头","剪刀"));
    //取数组中的随机值
    $rand_keys = array_rand($my_array);

    这段语句的意思是 my array 是一个变量名,后面是对数组的一个取值,数组有哪些,剪刀、石头、布,而获胜的规则就是剪刀*布,布*石头,石头*剪刀;这是赢的组合,如果是随机组合大家都知道有 C3*2 六种组合,而赢的组合适上面,取随机就是说数组的下标,这里并没有展示,因为是一维数组,0 即剪刀,1 是石头,2 是布

    提问环节
    1 )数组的规则是怎么样展示的,array 表达的是什么意思,为甚要取两次?
    上面的数组是一维的,对剪刀、石头、布一维的赋值,下面是获胜的规则,两个是完全不同的,二维数组存放的是赢得组合。
    2 )数组的应用情况?在后面会应用到。
    3 )下面取数值是随机的 //取数组中的随机值
    $rand_keys = array_rand($my_array);这里随机取数,要将电脑出的和你出的做一个对比,达到一个随机取值的效果。

    下面继续讲解:
    2、$computer = $my_array[$rand_keys];
    echo "你的".$what."VS ".$computer. "<br/>";
    $input = array($computer,$what)

    $computer = $my_array[$rand_keys];这是电脑的一个取值,是这个数组的下标
    而上面的 array 取值是 0.1.2 是对应的一个下标,是数组对应的建值
    Rand keys 有三个情况 0.1.2 也就是剪刀石头布的任意一种,而这个变量通过 computer 的赋值,取随机一种情况,可能是剪刀、石头、布的任一个; echo 你的 what vs computer 的就是对用户选的结果和电脑选的结果进行打印,后面会对这两个情况进行比较
    Input=array 的赋值就是一个新的数组,而这个数组就包含了电脑的结果和你的结果,组合是随机的。

    //将输入的 what 和电脑随机产生的值构造成一个数组,再判断在不在获胜规则中
    这个内容是一个注释

    3、if (!(in_array($what,$my_array))) {
    echo "请输入 剪刀、石头、布";
    header("location:index.php");
    }
    if ($computer == $what) {
    echo "噢,平手";
    }elseif (in_array($input,$guize)) {
    echo "电脑胜";
    }else {
    echo "你赢咯~";
    }
    }

    if (!(in_array($what,$my_array))) {
    echo "请输入 剪刀、石头、布";
    header("location:index.php");
    这个语句是做一个判断,用户提交的数据,是否在剪刀石头布这个范围内,如果超出这个范围是不正确的会有一个提示,比如你提交了一个鸡蛋,就超出了这个比较的范围,会提示让你选择三种之一,不然就会提交不成功,这个功能在前端技术中也有应用。要进行核心的逻辑判断,要保证提交正确,保证程序的延续

    接着判断,如果电脑和用户提交的结果是等于的状态,就会提示平手
    if ($computer == $what) {
    echo "噢,平手";
    Elseif 是指或许两者不相等,input 是什么内容呢就是刚刚我们看到的$input = array($computer,$what)这个数组,这个数据是电脑和用户的结果组成的数组,进行第二个判断,电脑和用户的数据包不包含在赢得数组范围内,如果电脑出的石头,用户出的布,在不在赢的组合中,如果不在这个组合中就是输,就是用户输
    }elseif (in_array($input,$guize)) {
    echo "电脑胜";
    如果组合在赢的组合,input 的数组就是电脑在前,用户在后 对情况做完判断,结果会输出,核心的 php 代码就已经结束了
    }else {
    echo "你赢咯~";
    }
    }


    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>剪刀石头布</title>
    </head>
    <body>
    <form action="" method="post">
    <div align="center">剪刀石头布,你出什么?<br/>
    <input type="radio" name="what" value="剪刀"/>剪刀<br/>
    <input type="radio" name="what" value="石头"/>石头<br/>
    <input type="radio" name="what" value="布"/>布<br/>
    </div>
    <p align="center">
    <input type="submit" name="sub" value="开始!" />
    <input type="reset" name="" value="重置" />
    </p>
    </form>
    </body>
    </html>
    4、前面是讲的 php 的逻辑是后端的,后面是浏览器的语言,浏览器知道这是什么版本和规则,通过这个声明来执行对应的代码
    Html 的语言是一定的规则
    是以括号开头,以斜杠结束,是一个闭合
    Head 是头部的意思一般作为网页的标题、语言使用、关键词和描述等等
    charset=utf-8"是国际通用的字符
    <title>剪刀石头布</title>相当于一个标题,比如打开百度,就显示百度

    form action 表单对应的动作;="" 空的地址对应你打开的地址 method="post"提交的方式用的是 post 的方式,更为安全一些
    Div 是一个容器,是一个网页的布局,是前端设计师来解决的
    align="center"居中的意思<br/>
    换行
    <input type="radio" name="what" value="剪刀"/>剪刀<br/>
    <input type="radio" name="what" value="石头"/>石头<br/>
    <input type="radio" name="what" value="布"/>布<br/>
    具体内容的意思
    "radio"是单选的意思,当 radio 和 name 只能选一个 type 就只支持选择一个

    "what" value="剪刀"对应的 php 接收的值,三个是相同的 三选一 容器闭合标签
    P 是段落的意思

    <input type="submit" name="sub" value="开始!" />
    input 的数据通过 psot 提交到 action 后端用户点击提交,服务器对数据进行处理

    Value 是开始 reset 重置是指可以重新选择一次
    表单和主体的闭合

    全部的代码就讲完了

    提问环节

    问题 1、比较的时候是电脑的下标和我们出的下标进行比对吗?、
    回答:不是电脑的下标,是值的组合
    问题 2、input 里面存的是电脑和用户值还是下标呢 值是 "布,石头" 还是下标"0,1"?
    Php 里的 input

    $input = array($computer,$what)

    这里的 input 是一个变量名称与前端的代码 input 是不同的,前端的 input 是一个变量使用别的也可以,上面的变量是 input 是电脑的结果和用户的结果组成的组合,input 给予用户的意思都可以

    3、末尾的 /body 和 /html 不写页面貌似也可以正常显示了,是不是这些东西可有可无呢,可以省略不写吗?
    不能没有这些标志,但是如果没有效果可以正常显示,编码规范不严谨,浏览器对这些内容有容错,正常的显示没有问题,但在复杂的环境,如果没有这些结尾,整个页面会发生错乱,整个页面时乱掉的,所以为了编程规范,结尾是一定要有的,比如右面的内容会和左面的或者下面的错乱

    好今天的内容就讲解到这,给大家布置一个作业,如果编写代码能达到整个代码无论用户怎么出牌,始终是电脑赢,可以在白龙码 https://devops.zbj.com/上进行编写。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:11 · PVG 06:11 · LAX 15:11 · JFK 18:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.