文章目录
1. php认识
超文本预处理器,嵌入html 的一种脚本语言,解释型语言,动态嵌入式语言
2. 格式
- <?php
…(php内容)
?>
-
(禁用,会干扰变量声明)<?
?>
-
<%
%>
3. 注释
4. 数据类型(4个标量,2个复合,3个特殊-5.4版本)
4个标量:(链接php3_1.php)
整型—int:
4字节,支持带符号数,即支持正负数,32位系统范围:-2147483648~2147483648,即-2^31 to 2^31。PHP语言超过这个数值就会换为浮点数(其他语言会截取),64位系统占用8字节,范围更大
$b = 2147483649; //32位机超过2147483648数值就会换为浮点数
var_dump($b); //输出并显示数据类型
echo PHP_INT_MAX; //显示整型范围的最大值,最小值换为MIN,最小值不包含,即也会转为浮点型
字符串string:
-
单引号开头,不支持变量解析
$b = 1; $a = 'a{$b}'; //用{}表示变量部分 echo $a; // 输出a{$b}, 不支持变量解析,不能将变量b解析为1
-
双引号可以解析变量
$b = 1; $a = "a{$b}"; //用{}表示变量部分 echo $a; // 输出a1,支持变量解析,但是不支持变量运算 //字符注意情况:引号要用转义字符 echo "你今天很\"美\""; // 你今天很"美" // 字符出现\或\\也需要转义 echo "动漫真的好看\\\\"; // 动漫真的好看\\ // 换行\n,tab用\t,回车用\r, echo "<pre>超级喜欢\r犬夜叉</pre>"; //格式化预览
-
定界符<<<开头的,将输入的文字都转为字符型,以顶格位置的aa,并且加分号截止,也支持变量解析
$b = 33; $a = <<< aa 金晨工作室声明 韩国累计10480例 广东中考延期举行 JonyJ女儿正面照 鲍毓明养女发声 哈利{$b}波 特aa罗恩当爸 河北公布开学时间 贾乃亮被曝新恋情 梅西否认转会传闻 各地开学时间汇总 英新增死亡 938例 aa; //以顶格位置的aa,并且加分号截止 var_dump($a); // 输出:string(266)
浮点float:
8字节,弱语言,不分单双精度。浮点精度缺失:整数部分用整除法转换成二进制,小数部分用小数二乘法来转换二进制
$a = 12.1;
$a = 12.1e4;
var_dump($a);
//浮点精度缺失
if (0.3 == 0.1+0.2) {
echo "真";
} else{
echo "假"; // 输出假
}
var_dump(2586.0 - 2585.98);
布尔bool:
true、false
3个复合:
-
array数组:
$a = [1,2,3]; var_dump($a); // 不能用echo一个个输出 $b = [1,[2,3],4];
-
object对象:
class Family {}; $brother = new Family(); var_dump(brother);
-
callable(可调用)
2个特殊:
-
资源型数据resource(需要完善)
$a = fopen("二次元.txt","w"); fwrite($a, "犬夜叉、未闻花名、天行九歌、一人之下、Clannad"); var_dump($a); // 二次元.txt文件中 犬夜叉、未闻花名、天行九歌、一人之下、Clannad
-
空null:
$b = null;
-
回调型数据类型called:参数回调
数据声明方式)
以$开头,不以数字开头,一般后面以字母开头,与数字下划线可以混用
变量
-
可变变量
$a = "动漫"; $$a = "罪恶王冠"; echo "$动漫"; // 输出:罪恶王冠 echo "${$a}"; // 输出:罪恶王冠
-
引用变量
$b = 5; $c = &$b; // &符号就是将b的值取出来赋给c $c = 7; // 修改c的值,b的值也会变 echo "$c"; echo "$b"; unset($c); // 销毁c值,b值依然存在 echo $b;
常量
-
define & const:不能更改
define("Π", 3.1415926); //区分大小写 define("a", 3.1,true); //加true不区分大小写 const e = 5.33; echo e; echo d; //未定义时,先查找变量,没找到就当字符d输出,输出常量不加$
-
"."为连接符
echo "当前系统版本:".PHP_OS."<br>"; echo "PHP版本:".PHP_VERSION."<br>"; echo "当前文件名:".__FILE__."<br>"; echo "当前行号:".__LINE__."<br>";
运算符
加减乘除
echo 10+3;
取余
echo 15%6;
自加自减
$a = 30;
$b = 2;
echo $b + ++$a; //先加/减一,后赋值,即++$a => $a = $a+1,输出33
echo $a; // 31
$a = 30;
$b = 2;
echo $b + $a++; //先赋值,后加/减一,先将$a+$b输出,再将$a加一,输出32
echo $a; // 31
字符串连接符
echo "我想吃"."麻辣烫"."火锅"."酸辣粉";
$a = 10;
$b = 2;
echo $a.$b; // 102
var_dump($a.$b); // string类型
拼装超级链接
$url = "http://www.baidu.com";
$name = "不后悔找度娘";
echo "<a href=".$url.">".$name."</a>";
字符串支持变量解析,但是不支持变量运算,要用连接符实现运算
$c = 45;
echo "你的体重是:{$c}*2"; // 输出:你的体重是:45*2
echo "你的体重是:".($c*2)."斤"; // 你的体重是:90斤
赋值运算=
$a = $b = 33;
$c = 5;
$c += 30; //$c = $c+30,自加赋值
echo $c;
自乘自除
$r= 9;
$r *= 3; // $r=$r*3
自余
$e = 6;
$e %= 4;
字符串追加
$str = "卫庄";
$str .="盖聂";
echo $str;
比较运算符:>、<、等于、>=、<=、恒等、!==,!=
var_dump(10<6); //false
var_dump("100bfh">50); //true,字符串和数字比较,从左往右的规则
var_dump("nbd100">50); //false
var_dump("hd"==0); //true,只要第一个不是数字,就会默认为0
var_dump("abc"=="abd"); //false,都是字符时,比较ascll
var_dump("a">"Aghg"); //true,a大于A的ascll
var_dump("10" === 10); //false,全等于就是类型和数值都要乡等
var_dump("asd" ==="asd"); //true
var_dump("10" !== 10); //true,不全等于就是类型或数值不相等,不等于一定是不全等于
var_dump("nd10" != 10); //true
逻辑运算符:与&&、和and、或||/or,非!,异或xor,与或、位运算
// 与&&------真真为真
var_dump(true && false);
var_dump(false && false);
var_dump(true && true); //真
// 或||------假假为假
var_dump(true || true);
var_dump(true || false);
var_dump(false || false); //假
// 非
var_dump(!true);
// 异或,相同为假,不同为真
var_dump(true xor true);
var_dump(true xor false);
var_dump(false xor false);
// 与或,短路效果,当判断到为假时就不会进行其他操作
$a = 10;
if ($a >50 && $a++) { //判断$a >50为假,&&语句则不执行后面语句,反之执行
# code...
}
echo $a; //10
$b = 10;
if ($b >50 or $b++) { //判断$a >50为假,or语句则不执行后面语句(有点问题)
# code...
}
echo $b; //11
位运算
// 位与运算
echo 2&3; // 0010&0011=0010
// 位或运算
echo 2|3; //3
// 异或运算
echo 7^4; //3 --0111 0100
取反运算
echo ~7;
//32位系统,得-8,0 0 0 00000111——取反>>>1111F FF FF 11111000,1为负数,取反码再加1,得0 0 0 00001000
三元运算符,一般用于输出
$a = 100;
$b = 101;
echo $a>$b ? $a:$b; //比较大小,$a>$b为假则输出后面的,输出$b