Heim >Backend-Entwicklung >PHP-Tutorial >php小知识点积累

php小知识点积累

WBOY
WBOYOriginal
2016-06-20 12:52:35938Durchsuche


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

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

'; ?> //输出的只有html代码
echo "".$val."";  //html和php代码共同输出
$str=''.$val.'';  echo $str; //先将要输出的内容赋给一个变量,然后再将变量输出

(2)在html中嵌入php
   //以=?>的形式输出
  • Item No
  • //以混编的形式输出
    在写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"]." ' "; //更为复杂的一种情形
    <br />

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn