PHP入门
参考文章
0.大小写敏感 ?
大小写敏感
1. 变量名区分大小写
所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$____SERVER,$_FILES,$_ENV等;
$abc = 'abc';
echo $abc;//输出abc
echo $Abc;//(echo $aBc;)无输出
2. 常量名默认区分大小写,通常都写为大写
define("ABC","HELLO WORLD");
echo ABC;//输出HELLO WORLD
echo abc;//abc
大小写不敏感
1. 函数名、方法名、类名 不区分大小写,但推荐使用与定义时相同的名字
function show(){
echo "Hello World";
}
show();//输出Hello World【推荐】
SHOW();//输出Hello World
2. 魔术常量不区分大小写,推荐大写
包括:
__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、__NAMESPACE__。
3. NULL、TRUE、FALSE不区分大小写
$a = null;
$b = NULL;
$c = true;
$d = TRUE;
$e = false;
$f = FALSE;
var_dump($a == $b);//输出 boolean true
var_dump($c == $d);//输出 boolean true
var_dump($e == $f);//输出 boolean true
4.类型强制转换,不区分大小写
包括
- (int),(integer) – 转换成整型
- (bool),(boolean) – 转换成布尔型
- (float),(double),(real) – 转换成浮点型
- (string) – 转换成字符串
- (array) – 转换成数组
- (object) – 转换成对象
$a = 1;
var_dump($a);//输出 int 1
$b = (STRING)$a;
var_dump($b);//输出 string(1) "1" //(length = 1)
$c = (string)$a;
var_dump($c);//输出 string(1) "1" //(length = 1)
1.基本数据类型
四种标量类型:boolean (布尔型逻辑型)、int (整型)、float (浮点型, 也称作double)、 string (字符串)
两种复合类型:array (数组)、object (对象)
两种特殊类型:resource (资源)、 null (NULL)
2.运算符
算数运算符:+、-、*、/、%、++、--
字符串连接符: .
赋值运算符:+=、-=、*=、/=、%=、.=
比较运算符:> 、>= 、< 、<= 、== 、!= 、<> 不等于、=== 值或类型全等于、!== 值或类型不等于
逻辑运算符:and 与、or 或、xor 异或、&& 与、|| 或、! 非、1>0?'true':'false' 三元运算
执行运算符:``、shell_exec()
错误抑制符:@
3. 流程控制
关键字:break、continue、exit/die、goto
4.变量和函数
1.变量:
$ 符号开头,其后是变量的名称,对大小写敏感!(全局变量global $ 、 &$)
2.常量:请用define(name,value,nocase) 函数-它的三个参数:(类常量const)
name名称必选,value值必选,nocase可选-是否对大小写不敏感 默认是false敏感!
魔术常量:__LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __METHOD__
3.许多预定义变量都是“超全局变量”,函数或方法中无需执行global $variable; 就可访问它们:
$GLOBALS ———管理全部变量的数组,变量名就是它的键名
$_SERVER———$_SERVER['REMOTE_ADDR']客户端IP地址
$_SERVER['REQUEST_METHOD']get/post方法
$_REQUEST——可以处理_POST/_GET/_COOKIE,不安全
$_POST ————返回数组print_r($_POST['name']),post最安全
$_GET ————返回数组, 乱码处理:发送时urlencode()接收时urldecode()
$_FILES ————返回数组为上传文件的名称类型大小等信息
$_ENV ————建议不开启
$_COOKIE ———敏感信息要加密
$_SESSION———禁止cookie后仍可用session
4.函数:函数名以字母或下划线开头(而非数字)。函数名对大小写不敏感!
function myName() {
被执行的函数代码;//默认return null;
}
5.自定义函数:
递归函数-函数不能成为死循环
变量函数-md5(123);$a='md5';echo $a(123);
回调函数-传入的参数就是函数名:
call_user_func(函数名);call_user_func_array(函数名,参数组);
匿名函数-没有直接的名称:
$a=function(){};
可变参数函数-没有参数要自己判断:
func_num_args();func_get_args();func_get_arg(index);
5.数组
表达式:$arr=array(); //数组打印 print_r($arr);
静态索引数组:$arr=array(1,false,'小明'); //$arr=range(low,high,step);
静态关联数组:$arr=array('name'=>'小明','age'=>8); //$a='ok';$arr=compact('a');
动态数组创建:$arr=array();$arr[]=1;$arr[]=true;$arr['name']='Lily';
二维数组创建:$arr=array();$a1=array();$a1[]=123;$arr[]=$a1;
增删改查:增改查$arr[index]; 删除unset($arr[index]);
数组遍历:foreach、list、each
foreach ($arr as $key => $value){
print_r('键:'.$key."值:".$val.'<p>');
}
6.字符串(String)
常用String函数
(链接为www.w3school.com.cn相关链接)
函数 | 用法 |
---|---|
explode() | 把字符串打散为数组。 |
fprintf() | 把格式化的字符串写入到指定的输出流。 |
strcasecmp() | 比较两个字符串(对大小写不敏感)。 |
strcasecmp() | 比较两个字符串(对大小写不敏感)。 |
strcmp() | 比较两个字符串(对大小写敏感)。 |
strip_tags() | 剥去字符串中的 HTML 和 PHP 标签。 |
strlen() | 返回字符串的长度。 |
strnatcasecmp() | 使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。 |
strnatcmp() | 使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。 |
strncasecmp() | 前 n 个字符的字符串比较(对大小写不敏感)。 |
strncmp() | 前 n 个字符的字符串比较(对大小写敏感)。 |
strpbrk() | 在字符串中查找一组字符的任何一个字符。 |
strpos() | 返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。 |
strrchr() | 查找字符串在另一个字符串中最后一次出现。 |
strrev() | 反转字符串。 |
strripos() | 查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。 |
strrpos() | 查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。 |
strspn() | 返回在字符串中包含的特定字符的数目。 |
strstr() | 查找字符串在另一字符串中的第一次出现(对大小写敏感)。 |
strtr() | 转换字符串中特定的字符。 |
substr() | 返回字符串的一部分。 |
substr_count() | 计算子串在字符串中出现的次数。 |
substr_replace() | 把字符串的一部分替换为另一个字符串。 |
trim() | 移除字符串两侧的空白字符和其他字符。 |