PHP学习笔记一

PHP学习笔记一

  • 环境配置相关
    • apache
    • PHP安装
    • 安装和配置MySql(c/s结构)
  • PHP基础
    • 变量
    • 常量
    • 数据类型 date type
    • 类型转换
    • 类型判断
    • 运算符
    • 计算机码
    • 流程控制
    • 文件包含
    • 函数

环境配置相关

apache

apache目录结构
bin(cgi-bin):windows下的可执行文目录
ab.exe 压力测试
conf:配置目录
httpd.conf 主配置文件,加载extral文件夹中附加配置文件
error:错误记录
htdocs:apache默认主机地址
modules:模块:apache的所有功能都是模块的
httpd.exe 服务器进程/查apache具有哪些功能和配置文件是否出错(文件坐在位置)
httpd -M 查看模块
验证配置文件是否有效:httpd -t

配置默认站点
1、apache确定访问位置
DocumentRoot “xxx”
2、域名
在httpd.conf中
ServerName localhost:80
Listen 80 监听端口

3、DNS host文件
4、重启后启用配置文件

PHP安装

php底层是c语言,由c编译

PHP目录结构
dev:设备驱动
ext:扩展包:php通过加载扩展实现
php.exe 解释器
phpXapachexx.dll :Apache支持包
php.ini : php配置文件

php.exe将.php解析成.html
运行:php.exe -f 文件名

Apache加载php模块
1、apache主配置文件中加载php模块
LoadModule php5_module ‘E:/server/php5/php5apachexxx.dll‘
测试:httpd.exe -M

2、apache 分配工作给php模块 根据后缀判断

AddType application/x-httpd-php .php

3、php配置文件加载到apache配置文件中
加载php配置文件 PHPIniDir ’x:/server/php5‘

4、创建php.ini
复制原有两个版本后改名字

安装和配置MySql(c/s结构)

目录结构
bin:执行文件夹
mysqld.exe
mysql.exe(访问mysql客户端)
mysqldump(备份)

mysql访问流程
命令行可执行mysql.exe ,进行连接认证
ip和port认证、-h主机地址、-p port、-u user 、-p password
退出\q

Php中配置mysql
Php.ini 中找到mysql.dll 删去’;‘
Extension_dir = xx

增加时区
date.timezone = PRC

配置虚拟主机

PHP基础

运行在服务端,嵌入html中,可以用多种标记区分php脚本
asp:<%php代码%>
短标记:
上两种已抛弃

脚本标记:
标准标记:

变量

所有变量前带$,
php允许中文变量
$a=‘b’;
b = ‘ b b ’ ; = = > b=‘bb’; ==> b=bb;==> a = a= a=b=bb
Echo输出
删除变量/从内存在释放:unset(变量名);

常量

常见变量
$_GET
$_POST
$_REQUEST
$GLOBALS
$_SERVER
$_SESSION
$_COOKIE
$_ENV
$_FILES

常量:const/constant
定义: define(‘常量名’,常量值);
const 常量名 = 常量值;
常量不使用$ ,由字母数字下划线组成,不能以数字开头,大写字母为主,define可以用特殊字符(访问需要使用constant(‘常量名’)),区别在访问权限上,常量不区分大小写

常用系统常量
PHP_VERSION
PHP_INT_SIZE
PHP_INT_MAX(php能带符号)

魔术常量
DIR:当前被执行脚本所在电脑的绝对路径
FILE:当前被执行脚本所在电脑的绝对路径文件名
LINE:当前所属行数
NAMESPACE:当前所属命名空间
CLASS:当前所在类
METHOD:当前使用方法

数据类型 date type

三大类八小类
基本数据类型 整型int/integer、浮点数float/double、字符串型 string、布尔型 bool/boolean
特殊数据类型 资源类型:resource、空类型:NULL
复合数据类型 对象类型:object 数组类型:array

类型转换

类型转换 在很多条件下,需要指定的数据类型,需要外部数据转换成目标数据类型

在PHP中有两种类型转换方式:
1、自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)
2、强制(手动)转换:根据自己需要进行目标类型转换

强制转换规则:在变量之前增加一个括号(),然后在里面写上对应的类型,其中NULL类型用到unset()

在转化过程中用的比较多的是布尔类型和数值转换
其他类型转布尔类型:ture/false,在php中较少会转成false
字符串转数值的说明
1、布尔ture为1,false为0;
2、字符串数值转换有自己的规则
以字母开头的字符串为0;以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)

类型判断

通过一组类型判断函数,来判断变量,最终返回这个变量所保存的数据的数据类型:是一组以is_开头后面跟类型名字的函数:is_xxx(变量名)
bool类型不能用echo来查看,可以使用var_dump(变量名)来查看

还有一组函数可以用来获取和设定数据的类型
Gettype():获取类型
Settype():设定类型

强制转换将数值复制后对新数据设置类型,Settype()将原数据转换。

整数类型:保存整数数值,四个字节存储数据,最大32位,但是在PHP中默认有符号类型,在php中定义了四种:十进制定义、二进制定义、八进制定义、十六进制定义
e.g. $a=120 十进制
$a=0b110 二进制
$a=0120 八进制
$a=0x120 十六进制
进制转换
Dec:十进制、oct:八进制、bin:二进制、hex:十六进制
decbin() decoct() dechex() 十进制转二进制、十进制转八进制、十进制转十六进制
hexdec() hexoct() hexbin()
Bindec() bin2hex() binoct()
Octbin() octhex() octdec()

浮点类型
浮点类型:小数类型以及超过整型所能表示的范围
科学技术法

布尔类型:两个值,负责判断ture/false
empty():判空。注0.为空
Isset():判断变量是否存在

运算符

运算符:operator 是一种数据进行运算的特殊符号,在php中有10种

赋值运算符
= 将右边的结果保存到内存的某一个位置,将该地址给左边

算术运算符
+
/-
*
/
%:取余数

比较运算符:比较两个数据大小
/>/>=//!=/=(大小和数据类型)/

逻辑运算符:针对不同的结果进行匹配
&&/||/! 与或非,前两个被称为短路运算

连接运算符:php中将多个字符串拼接的符号
.:将两个字符串连接在一起
.=:复合运算,左边变量等于左边和右边拼接起来
e.g.: a . a. a.b == a . = a.= a.=b

错误抑制符:@:不报错

三目运算符
表达式1 ? 表达式2 :表达式3;
如果表达式1:成立,那么执行2,否则执行3
可以复合嵌套

自操作运算符
++
_ _

前置先自增再操作,后置先操作再自增

衍生符号
+=:
-=
+=
*=
/=
%=

计算机码

计算机码:原码反码补码

位运算符:
&:都为一
|:一个为一,一个为零
~:取非
^:按位异或,两个相同则为0,不同则为1
<<:按位左移,右边补0
/>>:按位右移,正数补0:负数补1
注:补码运算,结束后转换成原码

运算符优先级

流程控制

流程控制:代码执行方向

顺序结构:代码从上往下执行
分支结构:给定一个条件,同时有多种可执行代码,然后根据条件执行某一段代码
if分支
最简if
if(条件表达式){
//代码段
}
基础if
if(条件表达式){
//代码段
}else{
代码段
}
复杂if
if(条件表达式){
//代码段
}elseif(){
代码段
}…//可以使用多个elseif来进行条件筛选
else{}

switch分支

switch(条件表达式){
case 1:
代码段;
Case 2:
代码段;

}
Break

循环结构:在某个条件控制范围内,制定代码可以重复执行
for/while/do-whlie/foreach

For(条件表达式1;条件表达式2;条件表达式3){
//代码
}//和c语言一样

while(条件表达式){
代码段
}//c语言一样

Do{
代码段
}while(条件表达式);

循环控制
中断控制
Continue 层次

流程控制替代语法

for(; ; ){—>for( ; ; ):
} —>endfor;
If/switch等同理

文件包含

(可嵌套)
在一个php脚本中,将另外一个文件(PHP)包含进来,分工协作去合作完成一件事情。
1、向上包含 实现被包含文件的共享
2、向下包含 实现自己的东西的共享
四种形式
1、Include:包含文件
2、Include_once:系统自动判断文件包含过程中是否已经包含过
3、Require:同上
4、Required_once:同上
Include(文件名)/Include‘文件名’

文件加载的原理
php代码执行流程:读取(php)->编译(opcode)->zendengine解析(字节码)->HTML
在文件加载的时候,系统会自动的将被包含的文件中的代码载入,在PHP中被包含的文件是单独进行编译的

Include和Require区别:包含不到文件的时候报错不一样,Include报错轻,可通过,Require报错,不可执行
Include和Include_once的区别:Include碰到一次执行一次,Include碰到多次也只执行一次

文件加载路径:绝对路径(本地绝对路径和网络绝对路径)和相对路径

函数

定义函数:
function display(){
echo ‘hello world’;
}
静态变量:static,内部定义的变量,使用static关键词修饰,用来实现跨函数共享数据的变量,函数运行结束所有局部变量会清空。

函数返回值
return 1、函数实现的结果通过该关键字返回给外部(包括外部其他功能代码),PHP中都有返回值,没有设定的话默认NULL 2、代表执行结束

可变函数
$变量 = ‘display’

function display(){
}
$func();

匿名函数
$变量名 = function(){
函数体
}

闭包(closure)
在函数内部又一些局部变量在函数执行之后没有被释放

$ innerfunction = function()user($变量):将外部变量保留到当前函数使用

伪类型
假类型,实际上PHP中不存在的类型,但是通过位类型可以帮助程序员更好的查看操作手册从而方便学习
两种:MIxed:多种数据类型和Number数值的

系统常见函数
1、有关输出的函数
print():类似echo输出内容
print_r():类似var_dump,但是比它简单,不会售出数据的类型,只会输出值
2、有关时间的函数
date():按照指定格式对应的时间戳(1970年格林威治时间开始计算的秒数)
Time():获取当前时间时间戳
Microtime():获取微妙级别的时间
Strtotime():将时间转换成时间戳

3、有关数学的函数
max():比较参数中最大的值
Min():比较参数中最小的值
Rand():得到一个伪随机数
Mt_rand():底层不一样,效率更高
Round():四舍五入
Cell():向上取整
Floor():向下取整
Pow():求指定数字的指次数的结果
Abs():绝对值
Squrt():求平方根

4、有关函数的函数
function_exists():判断指定函数名是否在内存中存在
Func_get_arg():在自定义函数中获取指定数值对应的参数
Func_get_args():在自定义函数中获取所有的参数(数组)
Func_num_arg():获取当前自定义函数的参数数量

你可能感兴趣的:(php,php)