每日一记
开始学习PHP
基本概念
PHP是超文本预处理器
运行在服务器端,内嵌在html脚本语言
由wampserver等集成环境,有mysql数据库和apache服务
使用localhost或127.0.0.1访问
写入的php文件一定要放在www目录下
php信息
phpinfo();显示所有php的信息
php.ini配置文件
PHP文件格式
<?php //大小写都可以
代码部分
除最后一行以外每行结尾都要以;结尾
?>
可以不写php但是要改ini配置文件的short_open_tag=On,要重启
变量
$变量名(不能是数字或特殊符号开头,可以是中文,建议驼峰命名法)=’value’;
echo “$变量名”; //输出上面传入的值
基础语法
单引号:如果里面有变量都作为一个字符串处理
双引号:里面有变量会输出变量的值
尽量使用单引号————效率高
//单行注释
/* */多行注释
"\n"换行(双引号解释转义字符,单引号不解释)
\r和\t同上
'\\'时输出\
'\''时输出'
因为\将后面的转义成没意义的字符
变量和字符串之间用.连接,而且要'将字符串包起来
双引号中插入单引号,单引号再插入变量时,变量会解析成'value'
双引号中插入变量时在变量后面加空格或,
echo __FILE__;输出文件地址
echo __LINE__;输出行号
echo __DIR__;输出当前文件的文件夹的路径
echo PHP_VERSION;获取php版本号
echo __FUNCTION__;输出函数名
false的情况:空字符串,0,空数组,null
数据类型
<分类>
标量
浮点类型:float
整数型:int
布尔型:boolean
字符串:string(只要是引号包起来的)
混合类型
数组:array
对象:object
特殊类型
空:null
资源:resourse
<转换>
intval()转整形
floatval()转浮点型
strval()转字符串
boolval()转布尔型
<注>
空转整形为0
空转浮点型变成浮点型的0
空转字符串变成空字符串
整形后面有字符串会清除字符串保留前面的数字
浮点型后面有字符串会清除字符串保留前面的全部数字
<判断>
is_array();
is_string()
is_bool();
is_float();
is_int();
is_object();
is_numeric();
is_resource();
is_null();
is_scalar();判断标量
gettype();只获取类型
var_dump();输出值和类型
PHP中提供四种整形的定义方式,十进制定义,二进制定义,八进制定义和十六进制定义
$a = 120 //十进制
$a = 0b110 //二进制
$a = 0120 //八进制
$a = 0x120 //十六进制
// 使用echo输出时。默认输出为十进制
decbin() // 十进制转二进制
decoct() // 十进制转八进制
dechex() // 十进制转十六进制
bindec() // 二进制转十进制
bin2hex() //二进制转十六进制
字符串:字符串变量用于存储并处理文本。
系统常量
定义:
define(‘常量名字’,’常量值————必须是常量’);
变量可重新定义,使用的变量必须在上面定义
defind(A);判断A是否已经被定义了
使用 define() 函数设置常量:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 常量
define("CL", "这是一个全局常量", true);
echo CL; // 默认false,变量名区分大小写
echo cl; // true不区分大小写
?>
预定义常量
PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。
(1)__FILE__(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么 它的值就是被引用的文件,而不是引用它的那个文件。
(2)__LINE__(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。
(3)PHP_VERSION:当前PHP预处理器的版本,如5.4.16。
(4)PHP_OS: PHP所在的操作系统的类型。如Linux。
(5)TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。
(6)DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ \ ”。
运算符
算术运算符:+ - * / %
赋值运算符:= += -= /+ %= .=
自增自减运算符:++ --
比较运算符:< > >= <= == === !=(仅看值) !==(看值和数据类型) <>(相当于!=)
逻辑运算符:&& || !(真假反转)
静态变量:static 放在函数体内,只会初始化一次变量,以后运行会记录上一次的值
预递增++x //先加再返回
预递减--x //先减再返回
后递增x++ //先返回再加
后递减x-- //先返回再减
非! //不是true就返回true
或or/|| //一个true就true
与and/&& //都true才true
异或xor //有且仅有一个true才是true
三元运算符:
(expr1) ? (expr2) : (expr3)
流程控制
<单分支>
if (条件) {
//真区间;
} else {
//假区间;
}
后续代码;
<多分支>
switch (条件) {
case 判断条件1 :
case 判断条件2 :
case 判断条件3 :
echo 执行1 ;
break;
case 判断条件4 :
echo 执行2 ;
break;
default:
echo 执行3 ; //否则
break;
}
if (条件判断1) {
echo 执行1 ;
} else if (条件判断2) {
echo 执行2 ;
} else if (条件判断3) {
echo 执行3 ;
} else {
echo 执行4 ;
}
循环
for (初始条件;条件判断;执行A) { //程序进行从初始条件开始逆时针
echo 执行B ;
}
——————————————————————————————————————————————————————————————————————————————
while (条件判断) {
echo 执行 ;
}
——————————————————————————————————————————————————————————————————————————————
do {
echo 执行 ;
} while (条件判断); //成立才接着循环
——————————————————————————————————————————————————————————————————————————————
continue从下一次循环语句开始
break终止循环语句
函数
function 函数名 (设置参数$...=...) {
echo 执行;
return 1; //只返回不输出
}
函数名 ();
上面这样return的1是不会输出的,要输出就要在调用函数前echo
函数可以在任何位置调用,但是变量不能在上面调用
函数可以调用多次
函数体内声明的变量是局部变量,否则是全局变量
两者互不污染,同时局部变量与垃圾回收机制有关
$_GET $_POST $_COOKIE $_SESSION $GLOBALS 超全局变量(统一内外变量)
约束形参:
function sum (int $num1 , int $num2)
{
return $num1 + $num2;
}
(sum('2.3',3));
约束返回值:
function sum (int $num1 , int $num2):string
{
return $num1 + $num2;
}
(sum(4,5));
php7.0新特性:
使用 ...$函数名 来将数组里的值一一给形参赋值
匿名函数:
将一个没有函数名的函数赋值给一个变量并调用(就是没有名字的函数)
static的关键字的使用:
* 当一个函数完成时,它的所有变量通常都会被删除。
* 然而,有时候您希望某个局部变量不要被删除。
* 要做到这一点,请在您第一次声明变量时使用 static 关键字:
function test(){
static $n=0;
$n++;
echo "调用了一次".$n."\n";
}
test();test();test();
?>
PHP变量作用域
PHP 有三种不同的变量作用域:
local(局部):函数内部声明的变量只能在函数内部进行访问
global(全局):函数之外声明的变量只能在函数以外进行访问
static(静态):静态变量仅在局部函数域中存在,当函数执行离开此作用域时,其值不会消失(例如拿来判断循环退出的变量)
内部函数想要引用外部变量可以引入global关键字global $outer;
注释:static变量仍然是函数的局部变量
常用函数
查手册
书写建议
能加空格就加