PHP中的输出语法还有:
echo | 可以输出一个或多个字符串 |
只能输出简单类型变量的值,如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);
输出结果:
$number = 1; $str = "hello world!"; printf("今天是星期%u ,看见纸上写着 %s.",$number,$str);
输出结果:
<?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); ?>
输出结果:
提示:echo输出的速度比print快,echo是PHP语句,没有返回值,print和print_r是PHP函数,函数有返回值。
print返回值为1(int类型),print_r返回值为true(bool类型)。
3.数据类型
有关数据类型我们可以用 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);
输出结果:
或者是使用php的检查数据类型的函数来进行数据类型的判断:
可以实现一下:
$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); }
来看一下结果:
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>";
$a=1; $b=&$a; $b=2; echo "a的值是$a"."<br>"."b的值是$b";
表单传值
在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>
收集完成后,显示给后台:
<?php //用于接收从post页面传递过来的用户信息,并显示出来 $name=$_POST['id']; $pass=$_POST['pas1']; $email=$_POST['emai1']; echo $name; echo "<br>"; echo $pass; echo "<br>"; echo $email; ?>
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>
<?php $name=$_get['id']; $pass=$_get['pass']; $emai=$_get['email']; echo $name . "<br>"; echo $pass ."<br>"; echo $email ."<br>"; ?>
另外利用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."篇文章"; ?>
简单总结
从安全性上来讲,get提交的数据在url栏可以看见,而post提交的数据是不可见的,因此post更安全。
从提交原理上讲, get提交是参数一个一个的提交,post提交是所有参数作为一个整体一起提交。
从提交数据的大小上来讲, get提交一般不超过255个字节,post提交的大小取决于服务器。
从灵活性上讲,get很灵活,只要有页面的跳转就可以传递参数,post不灵活,post提交需要有表单的参与。
有关问题的解决
在进行表单传值时,发现了有关单选和复选出现的问题:
查找资料后发现原因是:
因为单选框名字都一致,而我们需要获取相应选项的value值,这时需要手动在HTML页面中添加value,用value值的不同来判断所选的选项:
//将单选框的value值继续修改 <input type="radio" name="sex" value="女">女 <input type="radio" name="sex" value="男">男
运行:
同样的,对于复选框来说,它可以同时选多个选项,而接收页面使用$_POST接收时只有一个变量(一个变量只有一个值),因此会出现后选的选项会覆盖先选的选项,这个问题可以用数组来解决。
//信息收集页面 <input type="checkbox" name="hobby[]" value="书法">书法 <input type="checkbox" name="hobby[]" value="绘画">绘画 <input type="checkbox" name="hobby[]" value="演讲">演讲
//显示页面 var_dump($hobby)."<br>";
另一种解决方法是利用 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>"; } } ?>
总结
人生就像一场马拉松,能让你走得更久、更远的,是你的韧性。愿你一往无前,所向披靡!
如有错误,还请前辈们多多指点,感谢万分!