php基础语法
php的定界符
方式一:标准方式
默认就是标准方式
方式二:短标记风格
默认:php是不支持短标记风格的,需要修改配置文件才能开始短标记风格
方式三:asp风格
在php7之前是支持的,现在不支持
方式四:script风格
在php7之前是支持的,现在不支持
php运行原理
我们通过地址输入相应的url地址取访问资源
资源:
静态资源:图片 文档 视频 音频 html等等
动态资源:php文件
(1)当我们请求静态资源时,资源会立马给我们返回给你,显示在浏览器上
(2)当我们请求动态资源时,资源会先执行加载并且进行计算,将计算结果返回
给我们,显示在浏览器上
变量
php中定义变量的方式和java中非常类似
Java中定义变量的方式:定义一个整数类型的年龄age
int age = 20
php中定义变量
$age = 20;
方式 $变量名 = 变量值
注意事项:
(1)在php中变量必须以$开头,定义一个变量age,写法$age
(2)变量首字母不能以数字开头
(3)变量是区分大小写的,大写就大写,小写就小写
(4)变量不能使用特殊符号,>,&,<,下划线是可以使用的,变量不能出现中文
(5)见名知意 要取有含义的名字 最好是它的英文单词
首字母小写 如果这个变量是由多个单词组成,除了第一个单词的首字母小
写 ,剩下单词的首字母大写
userName
以上1-4条必须遵守,不遵守,代码运行报错
5条可以不遵守,尽量遵守,因为是规范
注释
和java注释一样
单行注释
// 单行注释
# 当行注释
多行注释
/*多行注释*/
数据类型
一个数据有2部分组成 类型+值
年龄18岁 类型 整数 值 18
身高170.5 类型 小数 值 170.5
(1)PHP的数据类型和java类似的
(2)定义变量的时候,无需指定数据类型,PHP会根据数值的类型自动进行判断
这个数据的类型
类型的查看
$age= 10;
echo gettype($age); //查看变量的类型
echo "<br/>";
echo var_dump($age);//查看变量的类型和值
整数(int)
$age= 10;
echo gettype($age); //查看变量的类型
echo "<br/>";
echo var_dump($age);//查看变量的类型和值
布尔类型(boolean)
布尔类型对应的值: 只有2种 true 和false
echo "-------布尔类型-------<br/>";
$isSucess = true;
echo gettype($isSucess);
echo "<br/>";
浮点类型(小数)
170.5
echo "-------浮点类型-------<br/>";
$height = 170.5;
echo gettype($height);
echo "<br/>";
echo var_dump($height);
2个浮点数不能比较相等
$a =0.58;
$b =0.22;
echo $a+$b;// 0.8
echo "<br/>";
if(($a+$b) == 0.8){ //不相等
echo "相等";
}else{
echo "不相等";
}
原因:
在java,javaScript中,2个浮点数都不能比较相等的
浮点类型涉及到精度问题:
浮点类型 0.58 实际值 0.580000000000000001
浮点类型 0.58 实际值 0.579999999999999999
字符串类型
一个人的名字: zhangsan
在java中 表示一个字符串: 是一对双引号 “zhangsan”
表示一个字符: 一对单引号 ‘a’
在Php中不管是单引号还是双引号都表示字符串
$name="zhangsan";
$otherName = 'zhanggousheng';
echo gettype($name);
echo "<br/>";
echo gettype($otherName);、
区别:
单引号: 推荐使用单引号
单引号里面是什么,内容就是什么
没有检查工作
效率高
双引号:
如果里面包含变量,会对变量进行解析(替换成值)
有一个检查工作:看看是否含有变量
效率低
$age = 20;
echo "$age";
echo "<br/>";
echo '$age';
数据类型的判定
PHP给了我们很多函数用来判定数据类型 这些函数都有一个共同的特征
(1)返回值是一个布尔类型 结果 要么是true 要么是false
(2)函数名称都是以is_类型的名称
判断是否是整数 is_int
判断是否是布尔 is_bool
<?php
$num = 10;
echo var_dump(is_int($num));
echo "<br/>";
echo var_dump(is_string($num));
?>
is_int 判断是否是整形
is_bool 判断是否为布尔类型
is_float 判断是否为浮点类型
is_string 判断是否为字符串类型
is_array 判断是否为数组
is_object 判断是否为对象
is_null 判断是否为空
is_resource 判断是否为资源
is_numeric 判断是否为数值类型
is_callable 判断是否为函数
布尔类型的自动转换
这个自动转换我们不需要去记忆,平时在写代码的过程中尽量去避免这些问题
下面的情况是布尔值判断时自动进行类型转换
1 整形的0为假 其他的整形为真
<?php
$num = 0;
if($num){
echo "true";
}else{
echo "false";
}
?>
2 浮点0.0为假 小数点后只要有一位非0的值结果就为真
<?php
$num = 0.00000000000000;
if($num){
echo "true";
}else{
echo "false";
}
?>
3 空字符串为假 只要里面有一个空格都为真
4 字符串的0也看作为假 其他的都为真
5 空数组也将其看作为假 只要里面有一个值都为真
6 空也为假(null)
7 未声明成功的资源也为假
可变变量
可以用一个变量的变量值作为另一个变量的变量名
<?php
$name ="heixinxi";
$$name = "黑信息";
echo $$name;
?>
运算符
算数运算符
+ - * / %
和java中运算符有什么区别
在java中5/2 = 2
在PHP中5/2 =2.5
<?php
$a =5;
$b =2;
echo "===========加===========<br/>";
echo $a+$b;
echo "<br/>==========减===========<br/>";
echo $a-$b;
echo "<br/>===========乘===========<br/>";
echo $a*$b;
echo "<br/>===========除===========<br/>";
echo $a/$b;
echo "<br/>===========取余===========<br/>";
echo $a%$b;
?>
案例 给定一个三位数 求它的个位+十位
+百位之和
153 3+5+1 = 9
<?php
$a = 347;
$gw = $a%10;// 3
$sw = ($a%100-$gw)/10;
$bw = ($a-$a%100)/100;
echo $gw+$bw+$sw;
?>
赋值运算符
+=:a+=b 等价于a=a+b;
-= /= *= %=
关系运算符
> < <= >= == != === !==
==: 等于 只是比较值 不比较值的类型
!= : 不等于 只是比较值 不比较值的类型
===: 等于 只有值和值的类型都相等 结果才是相等的
!==: 不等于 只要值和值的类型之中有一个不相等的 结果就为true
<?php
$a = 0;
$b = "0";
echo var_dump($a == $b); // true
echo "<br/>";
echo var_dump($a != $b); // false
echo "<br/>";
echo var_dump($a === $b); //false
echo "<br/>";
echo var_dump($a !== $b); // true
?>
逻辑运算符
与 同时 && and 当&&前后的表达式的值都为true时,结果才为true,在
运算过程中 当遇到第一个表达式的值为false 后面的表达式就不会运行了
或 者 || or 当||前后有一个表达式的结果为true,结果就是true,遇到
第一个表达式的结果为true,后面的表达式就不执行了
非 反 !
<?php
$a = 5;
$b = 2;
$c = 10;
echo var_dump($a>$b && $a<$c);//true
echo "<br/>";
echo var_dump($a>$b || $a>$c);// true
echo "<br/>";
echo var_dump(!($a>$b)); //false
?>
and 和 or的优先级小于=
<?php
$a = 5;
$b = 2;
$c = 10;
$d = $a<$b || $a<$c;
$e = $a<$b or $a<$c;
echo var_dump($d);//true
echo "<br/>";
echo var_dump($e);//false
?>
三元运算符
语法:
表达式?AA:BB
当表达式的结果为true时 执行AA
当表达式的结果为false时 执行BB
<?php
$a = 5;
$b = 2;
$c = $a>$b?100:1000;
echo $c;
?>