php中三个数字由小到大输出,php小知识点积累 - sunshinewyf的个人页面 - OSCHINA - 中文开源技术交流社区...

本文探讨了PHP在HTML中的嵌入方式,包括使用`<?php>`标签和混合编码形式。还讨论了在SQL语句中处理变量的问题,强调了单引号和双引号的区别,特别是在输出变量和构建SQL语句时的注意事项。文章通过实例展示了如何正确地使用单引号和双引号来避免语法错误和理解变量解析的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没有用原生的php写过东西了,最近由于一个项目的原因要涉及到原生的php。直到现在才发现,连原始的语句都忘了,真是不敢说自己是学php的,丢人。(或许之前是因为一直在用框架,而框架都是将原生知识进行包装的,唉,好多东西都没有学透彻啊),现记录一些遇到的问题

php和html之间的相互嵌套:潜意识中只是觉得php嵌套在html中会有很多的单引号和双引号,但是一直没有系统地区分过。

(1)php中嵌入html标签:

<?php echo '

Hello World

'; ?> //输出的只有html代码

echo "

".$val."";  //html和php代码共同输出

$str='

'.$val.'';  echo $str; //先将要输出的内容赋给一个变量,然后再将变量输出

(2)在html中嵌入php

   //以=?>的形式输出

  • <?php for($i=1;$i<=5;$i++){ ?>
  • Item No <?php echo $i; ?> <?php }
//以混编的形式输出

在写sql语句的时候发现错误

例如:

$sql = "update user set `username`=$username,`password`=$password";

会提示Unknown column 'yuanfang' in 'field list'

只是因为当username的类型是数字的时候,则插入的就是数字本身,而当username是char类型的时候,就是相当于

update user set `username`=yuanfang,`password`=abd了,这种自然和sql不符。原来小小的细节隐藏着这么大的玄机呢。学习啦,看来知识还是来源于细微之处。应该改为

$sql = "update user set `username`='$username',`password`='$password'" 或者这种

$sql="INSERT INTO user(user,pass) values('".$user."','".$pass."')";

似乎上面的问题有好多都是关于' '和" "的区别的。然后我就再一步进行深入了解了单引号和双引号之间的区别:

(1)" "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。' '单引号里面的不进行解释,直接输出。

例如:

- $abc='my name is tome';

- echo $abc //结果是:my name is tom

- echo '$abc' //结果是:$abc

- echo "$abc" //结果是:my name is tom

在使用单双引号的时候要特别小心,如下有几种情况要注意:

(1)在输出含有变量的字符串时:

$username = $_POST['username'];

如果要输出这样的效果:

this is my name + 接收到的username,有如下两种写法:

- echo "this is my name $username"; //$username会自动解析

- echo 'this is my name'.$username;//使用单引号进行输出

(2)在使用sql语句的时候

由于sql语句都是要放在" "里面,但是一旦sql语句里面又有变量怎么办

- $sql = "select * from user where username='shine'";//这是一种最为简单的方式

- $sql = "select * from user where username= '" .$abc. "' ";

上面这一句可以这么理解:

1."SELECT * FROM user WHERE  username=' " 纯字符串

2. .连接符,用来链接后面的字符

3.$abc 显示变量的值

4.." ' "连字符链接后面的单引号(为了与条件中的第一个单引号配对)

其实不必这么复杂,可以这么写:$query="SELECT * FROM user WHERE username='$abc' ";

可以这么理解,双引号内部的全都要被服务器解析,单引号只是当成普通字符而已.

(3)$query="SELECT * FROM user WHERE username=' " .$abc["name"]." ' "; //更为复杂的一种情形

第一次觉得小小的引号居然有这么大的用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值