PHP学习笔记(一往无前)(下)

简介: PHP学习笔记(一往无前)(下)

PHP中的输出语法还有:


echo 可以输出一个或多个字符串
print 只能输出简单类型变量的值,如int,string
print_r 可以输出复杂类型变量的值,以更容易理解的形式展示。如数组,对象
printf 函数用于格式化输出字符串,主要用于字符串中以%开头的格式字符串替换
sprintf 函数也用做字符串格式化。该函数与 printf 函数基本相同, 但它可以将转换后的结果保存到一个字符串变量中,而不是直接输出
var_dump 打印变量的相关信息,包括表达式的类型与值,通过缩进显示其结构


实现一下:


<?php
print "hello world";
//输出hello world
?>


<?php
$a=array('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
print_r ($a);

输出结果:

dd71ee7480614a18a5d99e516e2eb0f9.png

$number = 1;
$str = "hello world!";
printf("今天是星期%u ,看见纸上写着 %s.",$number,$str);


输出结果:

b658e952739c48fbbaf61440c6a3584c.png


<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>


输出结果:


f7b262246f704431aa6337113bd5796c.png

提示:echo输出的速度比print快,echo是PHP语句,没有返回值,print和print_r是PHP函数,函数有返回值。

print返回值为1(int类型),print_r返回值为true(bool类型)。


3.数据类型


ea9d45409295449299f70cb5428bf6d5.png

有关数据类型我们可以用 var_dump来表示出来:


  $a=5;
  var_dump($a);
  echo "<br>";
  $b="hello world";
  var_dump($b);
  echo "<br>";
  $c=3.14;
  var_dump($c);
  echo "<br>";
  $d=true;
  var_dump($d);


输出结果:


4fdef6b9ba834c3c845dbf540371f8c5.png


或者是使用php的检查数据类型的函数来进行数据类型的判断:


b5665713ab524b089a89e3632b7089f3.png


可以实现一下:


$a=5;
$b="hello world!";
$c=3.14;
$d=314;
if(is_int($a)){
  echo "$a"."是int型数据"."<br>";
}else{
  echo "$a"."的数据类型是:".is_int($a);
}
if(is_string($b)){
  echo "$b"."是string型数据"."<br>";
}else{
  echo "$b"."的数据类型是:" .is_string($b);
}
if(is_float($c)){
  echo "$c"."是float型数据" ."<br>";
}else{
  echo "$c"."的数据类型是".is_float($c);
}
if(is_float($d)){
  echo "$d"."是float型数据" ."<br>";
}else{
  echo "$d"."的数据类型是:";
  var_dump($d);
}


来看一下结果:


b3fad2b2e4e847d9b70050bbc415262b.png

4.值传递和引用传递


php默认的一般情况下,都使用的是值传递


值传递


指将一个变量的数据值(数据内容)复制一份,然后赋值给另一个变量,就是变量之间进行普通赋值。


    $a=1;
    $b=$a;
    $b++;
    //b的值是2,a的值是1
    echo "a的值是$a"."<br>"."b的值是$b";


引用传递


PHP中引用传递就是在变量前面加上 & ,引用传递中改动新的变量将影响到原始变量。


    $a=1;
    $b=2;
    echo "传递前a的值是:".$a."<br>";
    echo "传递前b的值是:".$b."<br>";
    $b=&$a;
    echo "传递后a的值是:" . $a."<br>";
    echo "传递后b的值是:" . $b."<br>"; 

8624df7da86b49f994be0e1f4bc57776.png


    $a=1;
    $b=&$a;
    $b=2;
    echo "a的值是$a"."<br>"."b的值是$b";


35b791e5ceb042c8a442fd70fce84c2d.png

表单传值


在PHP中进行表单传值的方式有两种,post和get;先举几个例子看看两者的区别~


1.post


第一个页面用于展现给用户,收集用户的信息:


<!DOCTYPE html>
<html lang="zh">
<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>
    <form action="postdo.php" method="post">
    用户名:<input type="text" name="id">
    密码:<input type="password" name="pas1">
    邮箱:<input type="email" name="emai1">
    <input type="submit" value="提交">
    </form>
</body>
</html>

840fb694d36a47dfa74cbf7d2fc54b68.png

收集完成后,显示给后台:


<?php
//用于接收从post页面传递过来的用户信息,并显示出来
$name=$_POST['id'];
$pass=$_POST['pas1'];
$email=$_POST['emai1'];
echo $name;
echo "<br>";
echo $pass;
echo "<br>";
echo $email;
?>

9ce3168dc3a24642b7eea1ba672d6e53.png

2.get


      <form action="getdo1.php" method="get">
      用户名:<input type="text" name="id">
      密码:<input type="password" name="pas1">
      邮箱:<input type="email" name="emai1">
      <input type="submit" value="提交">
      </form>


ea5882aa7f8f4cf582b7addc259e74a2.png

<?php
  $name=$_get['id'];
  $pass=$_get['pass'];
  $emai=$_get['email'];
  echo $name . "<br>";
  echo $pass ."<br>";
  echo $email ."<br>";
?>

be2fe2a6148a4c07b37b5cc7b215cbe5.png


另外利用get进行超链接传输:


<a href="getdo.php? id=1">第一篇文章</a>
  <a href="getdo.php? id=2">第二篇文章</a>
  <a href="getdo.php? id=3">第三篇文章</a>


<?php
$id=$_GET['id'];
echo "您单击了第".$id."篇文章";
?>

4c1d43fa15954249bc12ff4458e51deb.png


简单总结


从安全性上来讲,get提交的数据在url栏可以看见,而post提交的数据是不可见的,因此post更安全。

从提交原理上讲, get提交是参数一个一个的提交,post提交是所有参数作为一个整体一起提交。


从提交数据的大小上来讲, get提交一般不超过255个字节,post提交的大小取决于服务器。


从灵活性上讲,get很灵活,只要有页面的跳转就可以传递参数,post不灵活,post提交需要有表单的参与。


有关问题的解决


在进行表单传值时,发现了有关单选和复选出现的问题:

6d49985513c2492cb7d60dc03babf735.png


查找资料后发现原因是:


因为单选框名字都一致,而我们需要获取相应选项的value值,这时需要手动在HTML页面中添加value,用value值的不同来判断所选的选项:


//将单选框的value值继续修改
      <input type="radio" name="sex" value="女">女
       <input type="radio" name="sex" value="男">男


运行:


f778cde7b57e42c5ba4b5a13b73e825c.png

同样的,对于复选框来说,它可以同时选多个选项,而接收页面使用$_POST接收时只有一个变量(一个变量只有一个值),因此会出现后选的选项会覆盖先选的选项,这个问题可以用数组来解决。


//信息收集页面
           <input type="checkbox" name="hobby[]" value="书法">书法
           <input type="checkbox" name="hobby[]" value="绘画">绘画
           <input type="checkbox" name="hobby[]" value="演讲">演讲


//显示页面
                   var_dump($hobby)."<br>";

a3ebab9cc2814604a9a60391f0039823.png


另一种解决方法是利用 isset()函数来输出复选框的选择情况:


<form action="checkdo1.php" method="post">
          <h3>复选框的演示</h3>
          <input type="checkbox" name="check_a" value="a">摄影<br>//设置不同value值,当被勾选时相应值就会被进行post传递,用于后台收集
          <input type="checkbox" name="check_b" value="b">书法<br>
      <input type="checkbox" name="check_c" value="c">绘画<br>
          <br>
          <input type="submit" value="提交">
      </form>


<?php
 if(isset($_POST))//使用isset函数判断变量被定义的方式
    {
        if(isset($_POST['check_a']))
        {
            $check_a = $_POST['check_a'];
        }
        if(isset($_POST['check_b']))
        {
            $check_b = $_POST['check_b'];
        }
        if(isset($_POST['check_c']))
        {
            $check_c = $_POST['check_c'];
        }
        echo "<br>";
        if(isset($check_a) && $check_a == 'a')  
        {
            echo "摄影<br>";
        }
        if(isset($check_b) && $check_b == 'b')
        {
            echo "书法。<br>";
        }
        if(isset($check_c) && $check_c == 'c')
        {
            echo "绘画。<br>";
        }
    }
?>

c8592e5eed744218b80b1975e171aed7.png

总结


人生就像一场马拉松,能让你走得更久、更远的,是你的韧性。愿你一往无前,所向披靡!


a73da0acfbeb406e9bda965ccb78f4ea.png

如有错误,还请前辈们多多指点,感谢万分!

相关文章
|
8天前
|
存储 Java 数据库连接
php学习笔记-代码基本语法-day01
本文是关于PHP编程语言的基础语法学习笔记,内容包括PHP的介绍、注释风格、数据类型、命名规范、常量和变量的使用,以及变量和常量相关的常用函数。文中详细解释了PHP的基本语法元素和一些易混淆的概念,如传值赋值与传址赋值、可变变量,以及如何检查变量是否已定义或为空。
php学习笔记-代码基本语法-day01
|
8天前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
8天前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
8天前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
8天前
|
JavaScript Java PHP
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
本文是第二天的PHP学习笔记,涵盖了PHP中运算符的使用、类型转换方式,以及打印输出语句的特点,展示了其相较于其他编程语言的一些特殊之处。
php学习笔记-php运算符,类型转换,打印输出语句相较于其他语言的特殊部分-day02
|
8天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
8天前
|
前端开发 PHP
php学习笔记-php文件表单上传-day06
本文介绍了PHP文件上传处理流程、预定义变量`$_FILES`的使用、文件上传状态代码以及文件上传实现函数。同时,通过一个文件上传的小例子,演示了文件上传表单的创建、文件上传表单处理的PHP页面编写以及运行测试输出。
php学习笔记-php文件表单上传-day06
|
8天前
|
JavaScript 程序员 PHP
php学习笔记-php自定义函数-day05
本文介绍了PHP自定义函数的创建、调用、参数赋值以及作用域和生命周期,还探讨了`global`和`static`关键字的使用,以及`return`、`exit`和`die`的不同用法。
|
8天前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
安全 关系型数据库 MySQL
某教程学习笔记(一):17、php漏洞
某教程学习笔记(一):17、php漏洞
93 0
某教程学习笔记(一):17、php漏洞