php小知识点积累

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

php和html之间的相互嵌套:潜意识中只是觉得php嵌套在html中会有很多的单引号和双引号,但是一直没有系统地区分过。
(1)php中嵌入html标签:
<?php echo ‘<p>Hello World</p>‘; ?> //输出的只有html代码
echo "<tr>".$val."</tr>";  //html和php代码共同输出
$str=‘<tr>‘.$val.‘</tr>‘;  echo $str; //先将要输出的内容赋给一个变量,然后再将变量输出

(2)在html中嵌入php
<input type="text" name="username" value="<?=$username?>"/>   //以<?=?>的形式输出
<ul> <?php for($i=1;$i<=5;$i++){ ?> <li>Item No <?php echo $i; ?></li> <?php } </ul> //以混编的形式输出
在写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"]." ‘ "; //更为复杂的一种情形


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

时间: 2024-10-13 19:47:21

php小知识点积累的相关文章

一些零碎小知识点积累随笔

工作学习期间的一些零碎小知识点积累 1.蜂鸣器 1)有源蜂鸣器,这里的有源不是指电源的"源",而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声: 2)无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才能发声. 2.Altium Designer Winter 9 1)加载库 a.加载库,在Libraries面板上点击Libraries按钮或者选择菜单Design-->Add/Remove Library,这样可使用的库就显示在对话框中.

小知识点积累_linux

1. 建立层级目录:使用 mkdir 的 -p 选项,如 mkdir -p tmp/a/b/c.2. 解包到指定的目录:使用 tar 的 -C 选项,如 tar xvf newarc.tar.gz -C tmp/a/b/c.3. 联合命令:使用 ;.&&.|| 等控制运算符,如 cd tmp/a/b/c && tar xvf ~/archive.tar.4. 小心使用变量:把变量放到 “” 中,如 ~ $ ls tmp/a b~ $ VAR="tmp/*"

linux系统下用到的小知识点积累

preface:在ubuntu下做事情,在终端下执行一些命令.或者在vim里面做一些操作.自然而然须要用到一些小知识点,没有怎么系统地看<鸟哥的菜>,基本上是遇到了什么问题想要实现什么功能,就查找博客,学下该知识点,有些零散.便略微积累总结下. 1.批处理命令sh: 需在终端执行多个命令时,将那些命令写到一个文件中面,并命名XX.sh,在终端执行sh XX.sh可破,终端下将一个一个执行XX.sh文件中面的命令. 2.echo: 在批处理命令中.须要用命令输出自己想要的一些东西到终端的时候.e

前端小知识点积累

作为一名前端,一直想说,一入前端深似海啊.也许在很多人眼中,前端就是简简单单的写页面的,但实际上前端的水还都是很深的,具体就不做叙述了. 今天来的主要目的是分享平时积累的一些前端小知识 一:js,jq获取各种高度 Javascript: alert(window.screenTop);                     //浏览器距离Top alert(window.screenLeft);                     //浏览器距离Left alert(window.scre

C#小知识点积累

1.sealed 修饰符 概念: C#提出了一个密封类(sealed class)的概念,帮助开发人员来解决这一问题. 密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承.如果试图将一个密封类作为其它类的基类,C#将提示出错.理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的. sealed(C# 参考) sealed 修饰符可以应用于类.实例方法和属性.密封类不能被继承.密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sea

HTML小知识点积累

1.怎样让heigth:100%起效? ??有时候我们设置heigth:100%,想让当前控件铺满整个屏幕,可是非常少情况下这个属性能达到我们想要的效果,这是为什么呢? ??而依据W3C的规范.百分比的高度在设定时须要依据这个元素的父元素容器的高度.所以,假设你把一个div的高度设定为height: 50%;.而它的父元素的高度是100px,那么.这个div的高度应该是50px. 那么,为什么没效果呢? ??浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚动栏出现).或者你给整个页面

小知识点积累

移动端 手机 1.点击图片或按钮,选中状态影响到其他范围解决:html{-webkit-user-select:none}<meta name="msapplication-tap-highlight" content="no" /> 2.禁止长按 a,img 标签长按出现菜单栏a, img { -webkit-touch-callout: none; /*禁止长按链接与图片弹出菜单*/} 3.去掉 a,input 在移动端浏览器中的默认样式(半透明灰色

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

C++ 小知识点 WINAPI

int WINAPI WINMain 中,WINAPI含义 网友给出回答:在windef.h头文件中有如下定义#define WINAPI      __stdcall#define APIENTRY    WINAPIVC有两种函数调用方式 一种是__stdcall,另一种是__cdecl函数的调用方式有两种一种是PASCAL调用方式,另一种是C调用方式使用PASCAL调用方式,函数在返回到调用者之前将参数从栈中删除使用C调用方式,参数的删除是调用者完成的WinMain函数是由系统调用的,Wi