php的基本语法
- 弱数据类型编码语言。
- php可以和html混合编码,也可以单独编码。
- 每一个语句以分号(;)结束。
- 区分大小写。
- 变量以$符号开头。
- 变量有不同的数据类型。
- 变量以字母或下划线开头,不能是特殊字符。
- 可以看出,php的一些语法与C语言语法相同。
php的数据类型
-
基本类型
- 整型(integer)
- 浮点类型(单精度(float)和双精度(double))
- 布尔类型(boolean)
- 字符串(string)
-
复合类型
- 数组(array)
- 对象(object)
-
特殊类型
- 空值(NULL)
- 资源类型(resource)
基本数据类型案例
<html>
<head>
<title>first</title>
</head>
<body>
<?php
$i=10;
echo "int类型:".$i;
echo "<br/>";
$i=10.01;
echo "浮点类型:".$i;
echo "<br/>";
$i=true;
echo "布尔类型:".$i;
echo "<br/>";
$i="天气真好";
echo "字符串类型:".$i;
?>
</body>
</html>
- 测试
- 不能使用未赋值的变量
<html>
<head>
<title>first</title>
</head>
<body>
<?php
$i;
echo "int类型:".$i;
?>
</body>
</html>
- 整型数据有八进制,十进制,十六进制。
<html>
<body>
<?php
$i=0123;
echo "i=".$i;
echo "<br/>";
$i=0xAA;
echo "i=".$i;
?>
</body>
</html>
- php不支持无符号整数(与C语言不同)。
- PHP_INT_SIZE表示整型占几个字节;PHP_INT_MAX表示整型最大值。
<html>
<body>
<?php
echo PHP_INT_SIZE;
echo "<br/>";
$i=PHP_INT_MAX;
echo "i=".$i;
?>
</body>
</html>
-
给定一个变量超过了整型范围,将被解释为浮点类型(float)。
-
布尔类型两个值:true和false。
-
以下值被当做false
- false本身
- 整型0
- 浮点型0.0
- 空字符串,字符串"0"
- 不包含任何元素的数组
- 不包括任何成员变量的对象
- 特殊类型NULL
<html>
<body>
<?php
$a=0;
if($a==false)
echo "假1";
echo "<br/>";
$a=0.0;
if($a==false)
echo "假2";
echo "<br/>";
$a="";
if($a==false)
echo "假3";
echo "<br/>";
$a="0";
if($a==false)
echo "假4";
echo "<br/>";
$a=NULL;
if($a==false)
echo "假5";
?>
</body>
</html>
- 浮点数精度14位,从左边数第一个非0数是精度开始。
<html>
<body>
<?php
$a=0.1234567891011299;
echo $a;
echo "<br/>";
$a=0.00001234567891011299;
echo $a;
?>
</body>
</html>
- 字符串大小无限制,不超过内存即可。
- 字符串可用单引号,也可用双引号,但有些许区别。
<html>
<body>
<?php
$a=88;
$b="abcd$a";
echo $b;
echo "<br/>";
$b='abcd$a';
echo $b;
echo "<br/>";
$b="abcd\"";
echo $b;
echo "<br/>";
$b='abcd\"';
echo $b;
?>
</body>
</html>
- 与C语言不同,php数据类型自动转换,即变量类型不由程序员指定,是由该变量使用的上下文在运行时决定,可以通过var_dump($变量)来获取类型。
<html>
<body>
<?php
$a=88;
echo var_dump($a);
echo "<br/>";
$a=88.88;
echo var_dump($a);
?>
</body>
</html>
算术运算符
- +
- -
- *
- /
- %
- ++(自加)
- --(自减)
- 自加与自减的原理和C语言相同,后++为先赋值再自加1,前++为先自加1再赋值。
<html>
<body>
<?php
$a=88;
echo $a--;
echo "<br/>";
echo $a;
echo "<br/>";
$b=89;
echo ++$b;
echo "<br/>";
echo $b;
echo "<br/>";
?>
</body>
</html>
- +=
- -=
- *=
- /=
- %=
比较运算符
- $a==$b,等于为true
- $a===$b,全等(值相等,类型也相同)为true
- $a!=$b,不等于为true
- $a<>$b,不等于为true
- $a!==$b,非全等(值不等,或者类型不同)为true
- $a<$b,小于为true
- $a>$b,大于为true
- $a<=$b,小于等于为true
- $a>=$b,大于等于为true
<html>
<body>
<?php
$a=88;
$b=88.0;
if($a==$b)
echo "相等<br/>";
if($a===$b)
echo "全等<br/>";
else
echo "不全等<br/>";
$c=88.0;
if($b===$c)
echo "全等<br/>";
?>
</body>
</html>
逻辑运算符
-
$a && $b 或者 $a and $b,$a和$b全为true则为true
-
$a || $b 或者 $a or $b,$a和$b任一一个为true则为true
-
!$a,$a不为true则为true
-
“与”和“或”有两种形式的原因在于优先级不同。
- &&的优先级比=(等号)高
- ||的优先级比=(等号)高
- and的优先比=(等号)低
- or的优先比=(等号)低
- &&的优先级比and高
- ||的优先级比or高
<html>
<body>
<?php
$a=false||true;
$b=false or true;
echo var_dump($a,$b);
?>
</body>
</html>
三元运算符
- 表达式(expr1)?(expr2):(expr3)
- 假若expr1为true,则执行expr2;假若expr1为false,则执行expr3
<html>
<body>
<?php
$a=88;
$b=99;
echo $a>$b?$a:$b;
?>
</body>
</html>
字符串运算符
- 用小点(.)将字符串连接起来。
- .=
- 当两个变量用小点(.)连接时,表示将它们的内容连接。
<html>
<body>
<?php
$a=88;
$b=99;
echo var_dump($a.$b);
echo "<br/>";
$c="hello";
$c.=$b;
echo var_dump($c);
?>
</body>
</html>
类型运算符
- instanceof用于确定一个php变量是否属于某一个类class的实例。
<html>
<body>
<?php
class A1{}
class A2{}
$a=new A1;
echo var_dump($a instanceof A1);
echo "<br/>";
echo var_dump($a instanceof A2);
?>
</body>
</html>