【一】php 基础知识
1 php标记,<?php php代码 ?>
2 注释:代码的解释和说明
- 多行注释 /**/
- 单行注释 //、#
3“.”连接符
- echo "hello".date("Y-m-d H:s:m");
4.“=”赋值操作符,$a变量,hello数据本身
- $a="hello";
5.双引号可以解析变量名的值,而单引号不行,会原封不动的返还给浏览器
- echo "hello.$world";
6.指定字符串的3种方法
- ''单引号
- ""双引号
- EOF heredoc语法(ps:EOF可以替代为别的字符<<<EOF 字符串 EOF;)
7.标识符
- 可以是任意长度,由任意字母、数字、下划线组成
- 不能以数字开头
- 区分大小写
- 可以和函数名相同
8.数据类型
- interger
- string
- float
- boolean
- array
- object
- null
- resource
9.常量
- 关键字:define
- 变量名大写:define('NAME','test');
- 使用的时候不需要加$
- 一旦设定后不能在更改,是全局的
- 只能保存标量数据(字符串、整数、布尔值、浮点数)
10.超级全局变量
- $_POST:通过post方法传递给该脚本的变量
- $_POST:通过get方法传递给该脚本的变量
- $_GLOBALS:全局变量数组
- $_COOKIE:cookie变量数组
- $_FILES:文件上传相关的变量数组
- $_ENV:环境变量数组
- $_REQUEST:所有用户输入的变量数组(包括$_POST\$_GET\$_COOKIE)
- $_SERVER:服务器环境变量数组
11.++a(前置递增运算符)和a++(后置递增运算符)
$a=5; echo ++$a; //6 echo $a; //6 $b=5; echo $b++; //5 echo $b; //5 /* 运算过程: 第一种情况:首先将$a+1,在将结果赋值给变量(执行完再赋值) 第二种情况:首先将$a返回到屏幕上,在+1(先赋值在执行) $i=1; $a=($i++)+(++$i)+$i; // i=1; $i=2 //1+2=3 $++(执行完后在赋值)=4 //4+3=7 echo $a; //7 echo $i; //3 */
12.引用操作符 &
- 引用像一个别名 ,$aa和$bb指向同一个内存地址。通过unset来重置他们指向的地址
$aa=123; $bb=&$aa; $bb=455; unset($bb); //unset $bb不会改变$aa=455的值,只是破坏了$a和455在内存中的链接 echo $aa;
13.比较操作符
- =:赋值操作符
- ==:只判断数据是否相等(0==‘0’为true,0===‘0’为false)
- ===:数据相等,类型相等才为true
14.逻辑操作符
- ||、or:或(其中一个为true则返回true)
- &&、and:与(两个都为true才返回true)
- !:非($a为false,则返回true)
- xor:异或(一个为true,返回true。两个为true或false,返回false)
15.三元运算符
- echo $name=='cmf'?'yes':'no'; 如果名字是cmf,则打印yes,否则no
16.错误抑制符@
echo @(0/0);
17.执行操作符``
$out=`ls -la`; //针对当前脚本所在目录 echo '<pre>'.$out.'</pre>';
18.类型操作符:instanceOf(判断一个对象是否是特定类的实例)
class sampleClass{}; $myObject=new sampleClass(); if ($myObject instanceof sampleClass){ echo 'myObject is an instance of sampleClass'; //输出 }
19.保留2位小数:number_format 返回的是string类型
20.检查类型的测试函数
- is_array():数组
- is_double();is_float();is_real():浮点数
- is_long();is_int;is_interger():整数
- is_string():字符串
- is_bool():布尔值
- is_resource():资源
- is_null():null
- is_object():对象
- is_numeric():检查是否是任何类型的数字或者数字字符串
21:检察变量状态
- empty:判断值是否为空
- isset:判断变量是否存在
$a=123; //empty:false; isset:true $b=''; //empty:true; isset:true $c=0; //empty:true; isset:true $d=null; //empty:true isset:false
22.变量转换
- intval
- floatval
- strval
23:算数运算符
- +(加)、-(减)、*(成)、/(除)
- %(取模,求余的意思)
<?php $a=7/3; echo $a; //2.3333333333333.因为float类型的最大精度为14位 //需求:判断2个数是否能整除 $a=55; $b=3; if($a%$b==0){ echo "ok"; }else{ echo "no"; //输出no } ?>
- ++、--(我们的++和--也分前后)
<?php $a=88; $a++; //等价于$a=$a+1 echo $a; //输出89 $b=55; $b--; //等价于$b=$b-1 echo $b; //输出54 echo "<br/>"; //细节:也分前++和后++ $c=22; $d=$c++; //先算后加,此时$d=22;$c=23 //$d=++$c; //先加后算,此时$c=23;$d=23 $f=++$d; //先加后算,此时$d=22+1=23;$f=23 echo $c."||".$d."||".$f; //输出结果为23 ||23||23 echo $f; ?>
- 左加(+=)、左减(-=)、左乘(*=)、左除(/=)、左取模(%=)
<?php $a=90; $a-=60; //$a=$a-90 echo $a; //输出30 ?>
24:比较运算符
- $a==$b:等于,true
- $a===$b:全等,true,类型也要一样
<?php $a=2; $b=2.0; if($a===$b){ echo "ok"; }else{ echo "no"; //输出no,因为类型不一致 } ?>
- $a!=$b:不等于
- $a!==$b:不全等
25:逻辑运算符
- and(逻辑与)必须都为true,优先级低
- or(逻辑或)任一为true,优先级低
- &&(逻辑与)必须都为true。同下例子
- ||(逻辑或)任一为true
$a=10;$b=7; if($a++>8||$b++>7){ //逻辑或,前者为true后者不执行,所以$b=7 echo "ok"; } echo $a.$b; //11和7
- !(逻辑非)取反
and和&&都表示逻辑与,他们的区别主要体现在优先级上
||大于=大于or
$e=false||true; //true $f=false or true; //false var_dump($e,$f);
&&大于=大于and
$a=true && false; //false $b=true and false; //true var_dump($a,$b);
26:三元运算符
基本语法:表达式1?表达式2:表达式3
规则:如果表达1的结果为true,则取表达2的结果,反之取表达式3的结果
$a=90; $b=80; $c=$a>$b?(12-5):900; echo "c=".$c; //7
27:字符串运算符
当两个变量(基本数据类型)用.连接时,就表示把他们的内容拼接起来
$a="hello"; $b=123; $c=$a.$b; //表示内容拼接 echo $c; //输出hellocmf
28:类型运算符
instanceof用于确定一个php变量是否属于某一类class的实例
class dog{} class cat{} $cat1=new cat; var_dump($cat1 instanceof cat) //输出true
29:运算符优先级