Blogger Information
Blog 77
fans 0
comment 0
visits 55233
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
运算符与循环结构的用法、异步请求fetch使用(响应、用户数据接收用户数据`file_get_contents('php://input')`)
Jet的博客
Original
474 people have browsed it

一、运算符

1.1、算数运算符

  1. $year = date('Y');
  2. echo $year. "年" . "<br /><br />";
  3. // 除以4余数为0(能被4整除) 并且(&&) 除以不能被100整除
  4. if($year % 4 == 0 && $year % 100 !== 0 ) {
  5. echo "{$year}是闰年";
  6. }else{
  7. echo "{$year}是平年";
  8. }

1.2、比较运算符:返回布尔型,用在流程控制

  1. var_dump( 10 > 1 );


1.3逻辑运算符

|| && ! 返回布尔型,用在流程控制语句

  1. /**
  2. * !! 或,两边的表达式只要一个为true,返回true
  3. * && 且,两边的表达式全部为true,返回true
  4. * ! 取反
  5. */
  6. /**
  7. * = 赋值运算符
  8. * == 值比较
  9. * === 严格比较,比较值和类型
  10. */
  1. var_dump(0 == '0');
  2. echo '<br /><br />';
  3. var_dump(0 === '0');
  4. echo '<br /><br />';
  5. var_dump( 1>0 || 4>5);
  6. echo '<br /><br />';
  7. $username = 'admin';
  8. if (isset($username) && $username === 'admin') {
  9. echo '欢迎管理员{$username}回来';
  10. }


1.4、三元运算符

  1. /**
  2. * 表达式1 ? 表达式2 : 表达式3
  3. * 如果 表达式1 为true,则返回 表达式2 结果; 为false,返回 表达式3 结果
  4. */
  1. $var1 = 1;
  2. $var2 = 2;
  3. echo $var1<1 ? $var1 : $var2 . "<br /><br />";
  4. echo $var1=1 ? $var1 : $var2 . "<br /><br />";


1.5、isset 以及 ??

  1. $page = isset($_GET['p']) ? $_GET['p'] : 1;
  2. // ?? null合并运算符,告别isset()
  3. $page = $_GET['p'] ?? 1;
  4. echo $page;

二、循环解构

while循环for循环foreach循环

  1. $cities = ['北京','南京','上海','湖南','新疆'];
  2. echo "========while 循环=======<br /><br />";
  3. // while 循环
  4. $i=0;
  5. while( $i < count($cities) ){
  6. echo $cities[$i] . "<br />";
  7. $i++;
  8. };
  9. echo "<br /><br />";
  10. echo "========for 循环=======<br /><br />";
  11. // for 循环
  12. for ($i=0; $i < count($cities); $i++) {
  13. echo $cities[$i] . "<br />";
  14. }
  15. echo "<br /><br />";
  16. echo "========foreach 循环=======<br /><br />";
  17. // foreach 循环
  18. foreach($cities as $k => $v){
  19. echo $k . ":" . $v. "<br />";
  20. }


三、异步请求fetch使用

HTML文件:

  1. <form class="login">
  2. <table>
  3. <caption>
  4. 用户登录
  5. </caption>
  6. <tbody>
  7. <tr>
  8. <td><label for="email">邮箱:</label></td>
  9. <td><input type="email" name="email" id="email" placeholder="username@email.com" /></td>
  10. </tr>
  11. <tr>
  12. <td><label for="password">密码:</label></td>
  13. <td><input type="password" name="password" id="password" /></td>
  14. </tr>
  15. <tr>
  16. <td colspan="2"><button onclick="doLogin(this)" type="button">提交</button></td>
  17. </tr>
  18. </tbody>
  19. </table>
  20. </form>

注意点是:button按钮添加属性值 type="button",添加按键事件 onclick="doLogin(this)",通过点击触发事件


HTML的js事件:

  1. <script>
  2. async function doLogin(e) {
  3. const email = e.form.email.value;
  4. const password = e.form.password.value;
  5. // 非空验证
  6. if (email.length > 0 && password.length > 0) {
  7. // 异步提交
  8. const response = await fetch('./lib/user/check.php', {
  9. // 请求方法
  10. method: 'POST',
  11. // 请求头
  12. headers: {
  13. 'content-type':'application/json;charset=UTF-8'
  14. },
  15. // 请求参数
  16. body: JSON.stringify({
  17. email,
  18. password
  19. })
  20. });
  21. // 解析数据
  22. const result = await response.json();
  23. }
  24. }
  25. </script>

接收用户数据服务器文件.php

  1. <?php
  2. // 获取用户登录数据,不能用传统的表单格式提交
  3. // json当成文本流原始数据接收
  4. $json = file_get_contents('php://input');
  5. // $json 并非php能识别的数据类型,它只是json格式的字符串而已
  6. // json -> php.array, true: 数组
  7. $user = json_decode($json, true);
  8. echo json_encode($user);


流程图:

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post