>백엔드 개발 >PHP 튜토리얼 >php小知识点积累

php小知识点积累

WBOY
WBOY원래의
2016-06-20 12:52:35938검색


好久没有用原生的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 />

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.