PHP基础
php语言标记
标记 | 使用 |
---|---|
<?php ?> | |
<? ?> | ASP风格 |
<% %> | ASP风格 |
<?=$variablename ?> | 嵌入纯变量 |
<script language="php"> </script> |
指令分隔符
在php代码最后一段可以不用分号结束,因为?>代表一个分号。
注释
注释符:多行:/**/ 单行:#或//
变量
变量声明前加”$“符号用“=”直接赋值。
<?php $a = 100; $b = "string"; $c = true; $d = 99.99; $key1 = $a; $key2 = $b; $a= $b = $c = $d = "value"; echo "$a"; $var = ''; if(empty($var)) { echo "$var is either 0 or not set at all"; } if(!isset($var)){ echo "$var is not set at all"; } unset($var); if(isset($var)) { echo "This var is set so I will print."; } ?>
php变量名严格区分大小写。不能以数字开头,中间无空格,不能使用点分开,不能使用标识符。
可变变量
将变量拿来声明变量
<?php $h="hello"; $$h="world"; //${$h}和$hello值均为"world" ?>
变量引用赋值
$a="php"; $b=&$a; //此时$b与$a的值相同,且不管改变a或b,另一个也随之改变,但$a与$b存储在不同内存地址。
变量的类型
php为弱类型检查语言,变量类型由数据决定,不同于c语言等需要先定义。
类型种类 | 类型名称 |
---|---|
标量类型 | boolen |
标量类型 | integer |
标量类型 | float |
标量类型 | string |
复合类型 | array |
复合类型 | object |
特殊类型 | resource |
特殊类型 | NULL |
整形八进制数字前加"0",十六进制加"0x";最大为2147483647超出范围解释为float。
浮点数范围1.7E-38~1.7E+38。
字符串中php不会解释用单引号括起来的变量。
双引号会解释其内的变量等要指定名字的变量就用{}括起来 ,在字符串中常用的转义字符
转义字符 | 含义 |
---|---|
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\ | 反斜线 |
$ | 美元符号 |
\" | 双引号 |
\[0-7]{1,3} | 正则表达式-匹配八进制符号表示的字符 |
\x[0-9A-Fa-f]{1,2} | 正则表达式-匹配十六进制符号表示的字符 |
定界符
使用举例:打印数据 echo <<<EOT 字符串,变量,转义字符双引号等 EOT;
变量赋值$string=<<<EOT 字符串,变量,转义字符双引号等 EOT;
<?php $name="MyName"; echo <<<EOT my name is $name.'='\n \my name is 'dd'. EOT; ?>
数组
使用array()语言结构新建一个array。
<?php $arr = array("foo" => "bar",12 => true); print_r($arr); echo $arr["foo"]; echo $arr[12]; ?>
对象
对象由一组属性值和一组方法构成,属性表明状态,方法表明对象的功能。
<?php class person { var $name; function say() { echo "Doing foo"; } } $p=new person; $p->name="Tom"; $p->say(); echo "$p->name"; ?>
资源类型
使用var_dump()来输出资源类型,例如
$dir_handle=opendir("c:\\WINDOWS\\Fonts"); var_dump($dir_handle);
NULL类型
NULL表示一个变量没有值,有几种情况1.将变量赋值为NULL 2.声明的变量尚未被赋值 3.被unset函数销毁的变量。
伪类型
常用伪类型
名称 | 说明 |
---|---|
mixed | 说明一个参数可以接受多种类型。gettype()接受所有类型,str_replace()接受字符串和数组 |
number | 说明可以是浮点和整型 |
callback | 接受用户自定义的函数为参数。call_user_function(),usort()。 |
自动类型转换
布尔值----->整型0/1
NULL值----->整型0
int和float----->integer会转化为float
字符和数值(integer和float)----->字符会转化为数字
强制类型转换
变量前加括号
格式 | 功能 |
---|---|
(int) | 转换为整型 |
(bool) | 转换成布尔 |
(float)(double)(real) | 转换为浮点 |
(string) | 转换成字符串 |
(array) | 转换成数组 |
(object) | 转换为对象 |
使用函数转换
<?php $str="123.45abc"; $a=intval($str); //获取整型值123 $b=floatval($str); //获取浮点型123.45 $c=strval(123.45) //获取字符串值 settype($str, "integer") //改变变量本身值为int,123 settype($str, "string") //改变变量本身值为string ?>
字符转换为数字时,值是其中数值型字符串组成。NULL转换为字符串时为空。
变量类型测试
函数 | 介绍 |
---|---|
is_bool() | 判断是否为布尔型 |
is_int(),is_integer,is_long() | 判断是否为整型 |
is_float(),is_double(),is_real() | 判断是否为浮点型 |
is_string() | 判断是否为字符串 |
is_array() | 判断是否为数组 |
is_object() | 判断是否为对象 |
is_resource() | 判断是否是资源类型 |
is_null() | 判断是否为空 |
is_scalar() | 判断是否为标量 |
is_numeric() | 判断是否是任何类型的数字或数字字符串 |
is_callable() | 判断是否是有效函数名 |
使用方法
<?php $bool=True; $str="foo"; $int = 12; echo gettype($bool); var_dump($str); if(is_string($boo)) { echo "String:$bool"; } ?>
常量
用于一些数据计算中固定的值,作用域为全局且不能被更改。常量声明只能为(int,float,str,bool),常量不用理会变量范围规则而在所有地方定义和访问且其前面没有$符号。
常量的声明
boolean define(string name,mixed value [,bool case_insensitive]);
常量使用define声明
<?php define("a",100); //声明名为a的常量值为100 define("b","hello",true); //声明为b的常量且区分大小写 ?>
系统中预定义常量
常见预定义变量表
常量名 | 值 | 说明 |
---|---|---|
PHP_OS | UNIX/WINNT | 执行php解析的操作系统命令 |
PHP_VERSION | 5.2.6等 | 服务器版本 |
TRUE | TRUE | 真 |
FALSE | FALSE | 假 |
NULL | NULL | 空值 |
DIRECTORY_SEPARATOR | \或/ | 根据操作系统决定目录分割符 |
PATH_SEPARATOR | ;或: | 根据操作系统决定环境变量目录分割符 |
E_ERROR | 1 | 错误,脚本运行终止 |
E_WARNING | 2 | 警告 |
E_PARSE | 4 | 解析错误 |
E_NOTICE | 8 | 非关键错误 |
M_PI | 3.1415926535898 | 圆周率 |
PHP中魔术常量
常量名 | 值 | 介绍 |
---|---|---|
_FILE_ | 当前文件名 | |
_LINE_ | 当前行数 | |
_FUNCTION_ | 当前函数名 | |
_CLASS_ | 当前类名 | |
_METHOD_ | 当前对象的方法名 |
预定义和魔术常量简单的使用方法
<?php echo "当前操作系统:".PHP_OS."<br>"; echo "当前行号:"._LINE_."<br>"; ?>
PHP中的运算符
算术运算符
运算符 | 意义 |
---|---|
+ | 加法运算 |
- | 减法/取负运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 求模运算 |
++ | 累加1 |
-- | 递减1 |
$a++:先执行表达式再递增。
++$a:先递增再执行表达式的值。
字符串运算符
字符串运算符只有"."。为连接运算符,返回其左右参数连接的字符串。
<?php $name="Tom"; $age=27; $height=1.71; echo "my name: ".$name.",my age: ".$age.",my height: ".$height."m."."<br>"; ?>
赋值运算符
运算符 | 意义 |
---|---|
= | 将一个值或表达式的值赋值给变量 |
+= | 将变量与所赋的值相加后的结果再赋值给变量 |
-= | 将变量与所赋的值相减后的结果再赋值给该变量 |
*= | 将变量与所赋的值相乘后的结果再赋值给该变量 |
/= | 将变量与所赋的值相除后得结果再赋值给变量 |
%= | 将变量与所赋的值求模后的结果再赋值给该变量 |
.= | 将变量与所赋的值相连后的结果再赋值给该变量 |
<?php $a=$b=100; $a+=10; $b-=10; $result = "result is:"; $result .= "\$a+10=${a}"; $result .= "\$b-10=$b"; echo $result; ?>
逻辑运算符
php中的逻辑运算符
运算符 | 描述 | 说明 | |
---|---|---|---|
and或&& | 逻辑与 | 均为TRUE则返回TRUE,否则为FALSE | |
or或|| | 逻辑或 | 当均为FALSE时返回FALSE,否则为TRUE | |
not或! | 逻辑非 | 当为TRUE时返回FALSE,否则返回TRUE | |
xor | 逻辑异或 | 当只有一个为TRUE则返回TRUE |
位运算符
php中位运算符
运算符 | 描述 | 说明 |
---|---|---|
& | 按位与 | 均为1,才为1 |
| | 按位或 | 均为0,才为0 |
^ | 按位异或 | 不同为1 |
~ | 按位非 | 将二进制数据1变0,0变1 |
<< | 左移 | 将操作数在内存中的二进制数据左移指定位数 |
>> | 右移 | 将操作数在内存中的二进制数据右移指定位数 |
示例
$c=$a | $b
其他运算符
运算符 | 描述 | 示例 |
---|---|---|
?: | 三元运算符提供简单的逻辑判断 | $a<$b ? c=0 |
'' | 反引号为执行运算符,尝试将反引号内信息作为外壳命令来执行,并将输出返回 | $a='ls -al' |
@ | 错误控制运算符,在表达式前,则表达式忽略错误信息 | @表达式 |
=> | 数组下标指定 | 键=>值 |
-> | 成员访问符号,访问对象中成员属性或方法 | 对象->成员 |
instanceof | 类型运算符测定一个给定的对象是否来自指定的对象类 | 对象instanceof类名 |