1.PHP概述
- php的目标是允许网络开发人员快速编写动态页面
- 主要被用于开发各种网站程序
- 是脚本语言,不需要事先编译,在服务器运行。
 2.web工作原理
 web服务器: 浏览器->输入url地址->显示网站内容
 服务器是一种软件,把安装运行了服务器的电脑叫主机(host)
 
 3.php脚本语言
 开始: 
 表示进入php模式。
- PHP代码可以嵌入到html代码中任何位置,并且可以嵌入任意多个。
- 文件末尾的?>结束标志可以省略
- 一些PHP语句的结尾要加上;表示一句话的结束
- 结束标记?>就隐含了一个;
 1)多行注释
   /*
    多行注释
   */
  2)单行注释
   //我是单行注释
   3.变量
 变量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器
   变量用于存储 数字、文本字符串 或者数组这些数据!
  $变量名=数据(值)1.变量的销毁
 unset($变量名称)
  $and1=1;
  unset($and1);//销毁$and变量
  echo $and1;//提示出错,因为变量已经被销毁了!   2 .变量的命名规则
  1)变量名称严格区分大写
   $name,$NAME,$Name都是不同的变量2)
   字母或者下划线开头
   后面接任意数量的字母数字下划线都可以!
   错误的命名方式:
    $1name  错误点:以数字开头了
    $n ame  错误点:中间有空白字符
   总结一下:变量名只能包含 字母 数字 下划线 并且必须以字母或者下划线开头!
  3)最好不要用一些关键字作为变量名称(因为在其他的编程语言里面是完全不被允许的)!
  4.变量类型
  1.变量类型简介
    1)bool (布尔型)
       $a=true;
    var_dump($a);
    往变量里面存true或者false,那么这个变量就是布尔型了
    2)int (整型)
    往变量里面存整数,那么这个变量就是整型变量啦!
    3)float (浮点型,也称double)
    往变量里面存小数,那么这个变量就是浮点型数据了!
    $a=1.1;    var_dump($a);
  4)string (字符串)
    字符串就是一系列的字符组成串在一起!
    1单引号:
   $b=1;
    $a='test$bdwqd\'wqdqw';
    var_dump($a);
    echo $a;  在定义一些简单的字符串的时候使用单引号这种方法效率比较高!
    2双引号
   $b=100;
    $a='te$bst......';
    $a="te{$b}st......";
    var_dump($a);
    echo $a;3定界符
  $b=200;
    $a=<<<www
    dwqdqwdwq{$b}dwqdqdqdqdwqdwqcwcfwefwefcscwecwefwdqwdqdefwefwefewfwe
    www;
    var_dump($a);3定界符
$b=200;
$a=<<<www
dwqdqwdwq{$b}dwqdqdqdqdwqdwqcwcfwefwefcscwecwefwdqwdqdefwefwefewfwe
www;
var_dump($a);
4)NULL
 null表示一个变量没有值,表示空
    将变量直接赋值为null
    声明的变量尚未被赋值
    被unset函数销毁的变量
    $a=1111;
    unset($a);
    var_dump($a);5.常量
 1.概念
  常量是用于临时(只有在我们的程序的运行过程中才存在)存储值(数据)的容器
 2.定义和使用
  define(‘常量名称’,常量值) 或者 define(“常量名称”,常量值)
  常量的命名:
   1)和变量一样 只能包含字母数字下划线 并且必须以 字母或者下划线开头
   2)按照惯例常量名字总是大写的
   3)自定义的常量是严格区分大小写的!
  defined()函数来检查是否定义了某个常量
 3.常量和变量的区别
  1)常量前面没有美元符号($)
  2)常量只能用define()函数定义,不能通过赋值语句
  3)****常量可以不用理会变量范围的规则而在任何地方定义和使用
  4)常量一旦被定义就不能被重新定义或者取消定义
  5)常量的值只能是bool,int,float,string类型
 4.预定义常量
  预定义常量说白了就是我们的PHP内核已经帮我们定义好了的常量!
其中有的预定义常量是一__开头的,这些预定义常量我们又叫它魔术常量
   代码所在的位置不同他的值也是不同的,所以它加 魔术常量
  八个常用的魔术常量
   http://php.net/manual/zh/language.constants.predefined.php
  预定义常量是不区分大小写的!
  6.运算符
 概述:
  说白了就是一些符号,这些符号可以将变量或者数据执行某中运算!
 1.算术运算符
  1)+
 $a=1;
   $b=2;
   $c=$a+$b;
   echo $c;2)-
   第一个意思: 减号
 $a=10;
    $b=2;
    $c=$a-$b;
    echo $c;第二个意思: 取反
$a=1;
$b=-$a;
echo $b;//-1
echo '<br />';
echo $a;//1
 注意:取反并不会影响到被取反变量本身的值!
  3)* 乘号
   $a=4;
   $b=2;
   $c=$a*$b;
   echo $c;4)/ 除号
   $a=10;
   $b=2;
   $c=$a/$b;
   echo $c;5)% 取模
   $a=12;
   $b=2;
   echo $a%$b; 6)++ 自增
   前++
    当在一个语句里面需要使用到被自增的变量的值的时候,前++会先执行自增,然后再返回自增之后的值!
  $a=10;
    echo ++$a;//11   后++
    当在一个语句里面需要使用到被自增的变量的值的时候,后++会先返回变量的值然后再去执行自增
   $a=10;
    //++$a;//$a=$a+1;
    //$a++;//$a=$a+1;
    echo $a++;//echo $a;$a=$a+1;
    echo '<br />';
    echo $a;//11注意:
$a=10;
   ++$a;//这种情况不需要用到自增变量值的时候,和后++无区别
   echo $a; 7)– 自减
   前–
$a=10;
//$a--;//$a=$a-1; 和--$a没区别;
echo --$a;//$a=$a-1;echo $a;
echo '<br />';
echo $a;后–
    $a=10;
    //$a--;//$a=$a-1; 和--$a没区别;
    echo $a--;//echo $a;$a=$a-1;
    echo '<br />';
    echo $a;
  注意:自增或者自减是对变量而言的!
2.字符串运算符
  . 连接运算符
$a='孙胜利';
$b='测试字符串连接符';
echo $a.$b; 3.赋值运算符  =
   把右边的值赋给左边的变量
   $a=1;
   二元运算符
表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
   +=
   $a=1;
   $b=2;
   $a+=$b;//$a=$a+$b;
   echo $a;
  -=
   $a=2;
   $b=1;
   $a-=$b;//$a=$a-$b
   echo $a;  4.比较运算符
  概念:
  对操作数(按照比较运算符的要求,规则)进行比较
   如果比较出的结果满足比较运算符的要求那么结果就是true(真,成立,满足),否则就是false(假,不成立,不满足)
  PHP中规定:
   使用echo输出布尔类型值的时候
    echo true;它在页面中会输出1
    echo false;它会在页面中什么都不输出
    规定的,记住就好!所以说我们在测试的过程中如果需要输出布尔类型值的时候我们最好使用var_dump()来输出更明了的结果!
  1)== 值是否相等
   如果值相等则就是 true(真,成立)
   如果值不相等那么就是false(假,不成立)
$a=1;
   $b=1;
   var_dump($a==$b);//true 2)=== 全等(值要相等,类型也要相等)
   如果两边操作数的值 全等那么就是true否则就是false
 $a=11;
   $b='11';
   //var_dump($a==$b);//true
   var_dump($a===$b);//false3)!= 值是否不相等
   如果两边操作数的值不相等那么就是true,否则就是false
$a=1;
   $b=11;
   var_dump($a!=$b);//true 4)<> 同上
 5)!== 不全等
   如果两边的操作数不全等那么就是true,否则就是false
   /*
$a=1111;
   $b=2;
   var_dump($a!=$b);//true
   var_dump($a!==$b);//true
   */
   $a=11;
   $b='11';
   var_dump($a!=$b);//false
   var_dump($a!==$b);//true,$a不全等于$b 6)< 小于
   比较两边操作数的值,前面的是否小与后面的
   $a=1;
   $b=1;
   var_dump($a<$b);//false,$a小与$b这句话正确还是错误
7)> 大于
   $a=10;
   $b=1;
   var_dump($a>$b);8)<= 小于等于
 $a=1;
   $b=1;
   var_dump($a<=$b);//$a小与等于$b就是true,否则就是false9)>= 大于等于
$a=2;
   $b=1;
   var_dump($a>=$b);//true5.逻辑运算符
  概念:
   对表达式进行逻辑运算,运算出的结果是布尔类型的值(true,false)
   要求:
    参与逻辑运算的表达式的值是布尔类型的值,如果不是布尔类型的值会被PHP自动转换成布尔类型的值,然后再参与运算!
  1)逻辑与
   and 或者 &&
    运算规则:
     左右两边的表达式的值都为true的时候,运算的结果就是true
     否则只要其中任意一个为false,运算的结果就是false;
    现实举例:
     true 及格
     false 不及格
     左右两边的表达式就是我们要考试的科目;
     要求:当语文和数学都及格的时候那么,最终的结果才能够通过(true),否则就是不通过(false)
 $a=false;//语文
 $b=true;//数学
 var_dump($a && $b);   中间隐含一个问题:“短路”,运算符的优先级的问题!
  2)逻辑或
   or 或者 ||
    运算规则:
     左右两边的表达式的值有一个为true,运算的结果就是true
     ,只有当两边的值都是false的时候,结果才会是false
 $a=false;//语文
 $b=true;//数学
 var_dump($a || $b);   现实举例:
    要求:当语文和数学有一门及格那么最终的结果就是通过true
   中间隐含一个问题:“短路”,运算符的优先级的问题!
  3)逻辑异或
   xor
    运算规则:
     左右两边的表达式的值不一样的时候结果就是true,如果一样那么运算的结果就是false
$a=false;
$b=false;
var_dump($a xor $b);  4)逻辑非
   !
    运算规则:
     将原来表达式的值否定掉,原来是true,那么结果就是false
      原来是false,那么结果就是true
- 5)运算符
 1)? :
 三元运算
 格式:
 表达式1 ? 表达式2 : 表达式3;
 如果表达式1的值为true,那么就执行表达式2,否则那么就执行表达式3
 $a=false ? 10 : 20;
 echo $a;//20
- 可以把系统的命令放在里面执行!
 涉及到跨平台:
    $a=`ipconfig`;windows环境下
    $b=`ifconfig`;liunx环境下
    var_dump($b); 3)@
   屏蔽表达式可能发生错误!
   echo @$a;
   当然,实际在哪些地方应用,我们用到大家就知道了!
  4)=>
  5)->
  6)instanceof
 8.运算符的优先级
  优先级的概念:
   谁的优先级别高就先算谁!
  结合方向:
   规定了从那个方向开始算的问题!
  优先级这个概念只要知道一些基本的常用的就可以了,因为我们在实际开发中几乎没有那么需要写非常复杂的表达式,
  让我们去考虑先算谁,后算谁的问题!
  优先级归纳:
   1)[无]递增递减
   2)[右]逻辑非!
   3)[左]乘,除,取余
   4)[左]加,减,字符串连接符
   5)[无]包含大于号或者小于号的比较运算符
   6)[无]不包含大于号或者小于号的比较运算符
   7)[左]逻辑与&&
   8)[左]逻辑或||
   9)[左]? :
   10)[右]赋值运算符
   12)[左 ]逻辑异或xor
  圆括号的作用:
   用圆括号可以将表达式里面的某一块看成一个整体!
  *使用括号可以增强代码的可读性。
6.流程控制
if语句
switch语句
循环语句
与C语言基本相同就不再详写。
特殊的流程控制语句
 1.break语句
  作用:用于switch语句,for,while,do…while,foreach,用于中断这些语句!
     后面可以接上一个数字来表示跳出几层循环!默认不加就是跳出当前循环语句!
 2.continue语句
  作用:只能用在循环语句,跳出本次循环,并不是结束整个循环语句!
 3.exit()语句
  作用:结束当前整个程序的执行!
  die()语句作用同上!
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com
 
            