这里是我的博客

php基础知识

apache版本有 1.3版本 2.0版本 2.2版本 2.4版本
官网:apache.org
使用最新版本的前一个或两个
phpstudy-apache2.4.39的目录结构
bin:启动apache服务
conf:配置文件
htdees:站点文件
logs:日志文件(access.log: 服务器运行日志,error.log:服务器错误日志)
modules:apache运行时候需要的支撑文件(扩展文件)
操作文件是:conf logs
一:
1.
书写php语句时,必须写在里面
php的输出语句是echo
例子:echo "你好";

二:
单引号和双引号的区别:
双引号:输出变量会输出值
单引号:输出变量不会输出值
1.
php的基础语法有:
1.默认语法: 2.短标记语法:
3.asp风格语法 <% // %>
php注释:
//:单行注释
/* */:多行注释

:shell注释(单行注释)

php输出语句:
echo:一次输出多个数据,不能输出数组 布尔:true:1或false:空白
print():函数 输出函数 每次输出一个值 布尔:true:1或false:空白
print_r():函数 变量和数组 布尔:true:1或false:空白
var_dump():函数 输出内容的类型和长度1 变量和数组 布尔:true:bool(true)或false:bool(flase)/用于代码测试

标识符(关键字):标识符不能是自定义的变量名
概念:系统使用过的符号
例如:echo print print_r var_dump
数据类型:2
a.原始数据类型:
数字型:int float double
布尔型:boolean(简写bool)
字符串型:string(用单引号和双引号括起来)
资源型:resource
空典型:NULL
b.复合数据类型:
数组:array()
对象:object()
定义变量,常量:
a.变量:
自定义变量
1.必须以\(开头 2.变量名有字母,数字,下划线(\)后面不能是数字)
3.变量名不能是关键字
定义变量:
$num;//定义好的变量
变量赋值:
$num=10;
$num1;
$num1=20;
使用变量:
必须先定义好了变量和值才能使用变量。
系统变量
$_SERVER 服务器相关参数
$_GET 表单get方式提交
$_POST 表单post方式提交
$_FILE 文本框类型为file提交

b.常量:
define(常量名,常量值);
注意:
常量名-程序一般来说都是使用的大写字母(不会使用$符号)
变量的作用域:
a.局部变量
1).方法内部(方法无参)
2).方法参数(方法有参)
3).静态变量(static $qwr=45;)

b.全局变量(在整个php里面都可以使用)
1).
2).

3.掌控运算符和表达式
1).运算符
=的区别:
==:比较的是数值是否相同
===:比较的是数值是否相同 和数据类型书否相同
概念:能够运算的符号,运算后有一个结果
a.算数运算符
+ - * / % ++ -- += -= *= -= %=
b.关系运算符
== > < >= <= !=
c.逻辑运算符
&&:(与) ||:(或) !:(非)
d.字符串连接符
.:连接符
e.赋值运算符
=:赋值符
f.运算符的优先级
高到低
()
++ -- !
* / %
+ -
> < >= <=
== !=
$$
||
? :
=
2).表达式
a.单目运算
概念:一个变量的运算
例如:$num++ $num--
b.双目运算
概念:至少2个变量,并且用运算符连接
例如: 10 > 20
c.三目运算
概念:表达式为true,值1.表达式为flase,值2
例如:
10>3?4:6;
10大于3:对就是4,错就是6;

三:
1.php条件语句
1).单个if语句
语法:
if(条件表达式){
语句块;
}
表达式:返回为true或false(0或非0 )
2).if-else语句
语法:
if(条件表达式){
语句块;
}else{
语句块;
}
if-else 语句 只选择一个执行
3).if-else-if.....else语句
语法:
if(条件表达式1){
语句块1;
}else if(条件表达式2){
语句块;2
}
........
else{
语句块3;
}
注意:多个条件只执行一个条件
4).if嵌套
语法:
if(条件表达式1){
if(条件表达式2){
语句块1;
}else{
语句块1;
}
}
5).switch()语句
语法:
switch(值){
case 常量1:
语句块;
break;
case 常量2:
语句块;
break;
default:
语句块;
break;
}
注意:值只能是数字,字符串;
6).break;
break;跳出循环语句或停止语句
四:php的循环语句
 一个空格;
abs();绝对值;
1.while()循环语句
语法:
while(条件表达式){
重复动作;
更新条件的语句;
}
例子:
\(i=1; while(\)i<10){//i小于10就执行
echo i;//输出i的值
i++;//i加一
}
至少执行0次

语法:
	do{
		重复动作;
		更新条件的语句;
	}while(条件表达式);
例子:
	$i=1;
	do{
		echo i;
		i++;
	}while($i<6)
	至少执行一次

break语句:
	结束循环
	$i=1;
	while($i<10){//i小于10就执行
		echo $i;//输出i的值
		$i++;//i加一
		if($i==5){
		break;
		}
	}
	
continue语句
	只能在循环中使用,结束本次循环,遇见continue的时候就不会执行continue之后的代码
	$i=1;
	while($i<10){//i小于10就执行
		echo $i;//输出i的值
		$i++;//i加一
		if($i==6){
			continue;
		}
	}

2.for()循环语句
语法:
for(初始值;判断式;递增或递减){
要输出的语句;
}
//
for(\(i=1;\)i<9;$i++){
echo "";
}

五:php函数
1.函数的概念
独立的子程序,能够完成一定的功能(有可能很复杂,简单)

	好处:
		1).减少代码冗余
		2).维护代码更简单
		3).多人同时开发,开发效率高
2.函数的定义
	语法:
		function styer([var1,var2,.....]){
			//函数体(功能块)
			return value;
		}
3.函数的调用
	styer([var1,var2,.....]);
4.函数的分类
	1).无参无返
	2).无参有反
	3).有参有反
	4).有参五反
5.变量函数(用的不多)
	//定义函数
	function hoer(){
		echo "你好";
	}
	//把函数赋值给变量
	$qw="hoer";
	//通过变量来调用函数
	$qw();
6.参数分类
	按值传参
	引用传参(必须定义变量)
	默认值
7.shuffle():随机排序

六:数组
1.
1).理解数组的概念
注意:这一组数据可以不是相同类型的值
2).创建数组3种
a.使用array()函数创建-推荐
例1:\(arr1=array(1,2,3,4,5,6); 例2:\)arr1=array(0=>"a",3=>"8",2=>"b");

		b.使用range(min,max)函数创建-不用
			$arr2=range(4,9);
		c.使用[]创建数组,这个创建数组
			$arr3=[1,2,3,4,8,6];
	3).数组存值2种
		第一种:$arr1=array("a"=>45,"b"=>46,"c"=>47);
		第二种:
			$arr2=array();
			$arr2["a"]=2;
			$arr2["A"]=6;
			$arr2["b"]=8;
		注意:键名是唯一的,值可以重复
	4).遍历和取出数组的值
		取值:
			$数组名[键值];
			$arr2["a"];
		遍历数组:
			第一种:foreach()循环
				例子:foreach($arr2 as $key=>$vlaue){
					echo $key;
					echo $value;
				}
			第二种:for()循环-一般不用
				注意:键名必须是连续的数字。
			第三种:指针(不常用)
				key():获得当前指针的键名
				current():获得当前指针的值
				next():执行指向下一个
				例子:
					echo key().""=>ccurrent()."";
2.
	1).数组元素的添加和删除
		添加数组:
			int array_unshift(array,value)在数组的头添加
			int array_push(array,value)在数组的尾部添加
		删除数组:
			mixed array_shift(array)从头开始删除 mixed:删除的值
			mixed array_pop(array)从尾部开始删除
	2).搜索数组
		定位是否含有元素:
			boolean in_array(value,array)存在返回true,不存在返回false
		定位是否含有键:
			boolean array_key_exists(key,array)存在返回true,不存在返回false
		根据值找键:
			mixed array_search(value,array)根据值找键
	3).获取数组元素
		A:array array_keys(array)获取数组的所有键,并组成一个数组
		B:array array_values(array)获取数组的所有值,并组成一个数组
	4).确定数组的大小和唯一性
		A:int count(array)计算数组的大小
		B:array array_count_values(array)统计值出现的频率,返回值出现的次数组成数组,值是键,次数就是值
		C:array array_unique(array)删除数组的重复值,返回一个不重复的数组
3.
	1).数组排序 sort:排序
		A:array array_reverse(array);逆向排序
		B:array array_flip(array);置换键和值的顺序:有重复键值就是后一个键值替换前一个键值
		//针对值为数值类型的数组 a:是否保留原有键
		C:boolean sort(array);对值升序排序,不保留原有的键,键为默认键名
		D:boolean asort(array);对值升序排序,保留原有的键
		E:boolean rsort(array);对值降序排序,不保留原有的键,键为默认键名
		F:boolean arsort(array);对值降序排序,保留原有的键
		//针对值为非数值类型的数组 ASCII码
		G:boolean natsort(array);自热排序-升序 区分大小写
		H:boolean natcasesort(array);自热排序-升序 不区分大小写
		//对键排序 r:代表降序
		I:void ksort(array);对键进行升序排序,保留原有的键值对
		J:void krsort(array);对键进行降序排序,保留原有的键值对
	2).合并,拆分,接合数组
		A:合并--多个数组合并为一个数组
			array_merge(array1,array2,...);各个数组有相同的键,删除第一个数组的键对值
			array_merge_recuralve(array1,array2,..);递归合并(多个数组有相同的键,递归合并为一个数组)
		B:拆分--返回数组的一部分
			array_slice(array,offset,length); offset:开始下标(数字) length:拆分的个数
		C:接合--两个数组--一个数组的值作为键,一个数组的值作为新的值
			array_combine(array1,array2);
			注意:array key 和array value 的个数必须一样不然报错

七.常用函数函数
1.
1).工具函数
A:exit() 或 die() 终止程序的运行
例子:exit();或die();
B:boolean empty():判断value是否为空(0或NULL),为空返回true,不为空为false
例子:if(empty(value)){
echo "空值";
}else{
echo "有值";
}
C:boolean isset();判断是否有值,有值为true,没值为false
例子:var_dump(isset(value));
D:void unset();删除变量
例子:
\(num=5; unset(\)num);
E:eval(字符串);string单引号和双引号,把字符当做代码运行
例子:
eval("echo '\(num';");等价于echo "\)num";
F:is_bool();判断是否是布尔值,是返回true ,不是返回false
例子:
$num=0;
\(sum=true; is_bool(\)num);返回false
is_bool($sum);返回true

	2).日期和时间函数
		A:string date();获取当前时间
			例子:
				echo date("Y-m-d H:i:s");
				Y:获取年(4个数字)
				y:获取年(2个数字)
				m:获取月
				d:获取这个月的天数
				H:获取小时(24小时)
				h:获取小时(12小时)
				i:获取分钟
				s:获取秒数
				l:获取星期(英文)
				a:获取上午或下午
		B:array getdate()获得日期或时间
		C:array gettimeofday();获取当前时间
		D:string gmdate();格式化时间
			seconds:秒数
			minuter:分钟数
			hours:小时
			mday:日
			wday:一周的第二天
			mon:月
			year:年
			0:时间戳
		E:boolean checkdate();验证时间是否有效
		F:string microtime();返回当前时间戳或微秒数
		G:string mktime();取得一个日期的时间戳
		H:strig strtotime();解析任何英文的日期时间成为UNIX时间戳记
			例子:
				echo strtotime("-2 day")."<br/>";
				echo strtotime("Y-m-d",strtotime("-2 day"));
			now:当前
			+1 day:日期加1天
			+1 months:日期加一个月
			+1 years:日期加一年
		I:time() 获取当前时间的时间戳

2.
	1).常用的数学函数
		A:int rand(min,max)产生指定随机数
			例子:
				echo rand(1,10);//产生1到10的随机数
			
		B:float ceil(number)取大于number的最小整数
			例子:
				$num=14.23;
				echo ceil($num);//结果为15
				
		C:float floor(number)取小于number的最大整数
			例子:
				$num=14.23;
				echo floor($num);//结果为14
				
		D:float abs(number)取绝对值
			例子:
				$num=-5;
				echo abs($num);//结果为5
				
		E:float pi()取圆周率
			例子:
				echo pi();//结果为3.1415926
				
		F:float round(number)对number进行四舍五入
			例子:
				$num=12.36;
				echo round($num);//结果为12
				
		G:int max(array)取除数组中最大的值
			例子:
				$num=array(12,45,36,78);
				echo max($num);//结果为78
			
		H:min(array)取除数组中最小的值
			例子:
				$num=array(12,45,36,78);
				echo min($num);//结果为12
			
		I:string decbin()十进制转二进制
			例子:
				$num=16;
				echo decbin($num);//结果为10000
				
		J:string dechex()十进制转十六进制
			例子:
				$num=16;
				echo dechex($num);//结果为10
				
		K:string decoct()十进制转八进制
			例子:
				$num=16;
				echo decoct($num);//结果为20

	2).字符串处理函数
		A:string join(格式符,array)或implode(格式符,array) :数组通过指定的格式符转换为字符串
			例子:	
				$num=array(1,5,6,7);
				var_dump(join('-',$num));//结果为“1-5-6-7”
		B:string htmlentities(string)或htmlspacialchars(string) 把标签中的html标签显示出来
			例子:
				$html="你好 <b>李娜</b>";
				var_dump(htmlentitles($html));//结果为:你好 <b>李娜</b>
		C:array str_split(string)把字符串分割为数组
			例子:
				$str="gsvkseih";
				var_dump(str_split($str));//结果为:
		D:string/boolean strstr(string,查找的字符串) 存在从此元素以后显示出来,不存在返回false
			例子:
				$str="agsdhdhd";
				var_dump(strstr($str,'s'));//结果为:'sdhdhd';
		E:string trim(string)去除左右空格/ltrim(string)去除左空格/rtrim(string)去除右空格
			例子:
				$str="  qw   ";
				var_dump(trim($str))//结果为:'qw';
				var_dump(ltrim($str))//结果为:'qw  '
				var_dump(rtrim($str))//结果为:'   qw'
		F:array explode(分割符,字符串)把字符串用分割符进行分割变为数组
			例子:
				$str="sgetheh";
				var_dump(explode('-',$str));//
		G:count_chars(string,3);去除字符串的重复项
			例子:
				$str="qw-as-xc";
				var_dump(count_chars($str,3));//
		H:int/boolean strpos(string,查找字符串)存在返回子元素下标,不存在返回false
			例子:
				$str="qwedhrun";
				var_dump(strpos($srt,'d'));//结果为:3
		I:int strlen(number)获取字符串的长度
			例子:
				$str=" tgid ";
				var_dump(strlen($str));//结果为:6
		J:string substr(string,offset,length)截取string字符串从ofset下标开始,截取长度
			例子:
				$str="eghyndd";
				var_dump(substr($str,3,2));//结果为:yn

八.文件处理
1:
1).
文件:*.ppt *.exect .docx或.doc *.txt *.jpg ......
文件作用:存储很多数据
在计算机操作文件是需要权限
文件权限:读和写,可读可写
读:r(read)
写:w(write) 或 a(append)追加

		is_dir(path)				根据路径判断是否是文件夹
		file_exists(path)			根据路径判断文件夹或文件是否存在
		mkdir(path)				创建文件夹
		is_file(path)				根据路径判断是否是文件
		fopen(path,'权限')			打开文件
		fclose(file)				关闭文件流
		fweite(file,string,length)		写入字符串//file:打开文件 string:写入内容
		file_get_contents(path)			读取文件
		feof(file)				是否循环读到最后的位子
		fgets(file)				逐行读取
		fgetc(file)				一个一个的读取内容
		string serialize(content)		序列化
		array unserialize(file)			反序列化
2:
	1).
		filesize(path);				计算图片的大小
		fread(file,length);			二进制打开文件 读取:rb  写入:wb

posted on 2020-04-21 19:37  梦黑客  阅读(206)  评论(0)    收藏  举报

导航