php基础

php 基础

什么是 PHP?

超文本预处理器

运行原理

运行在服务器端,内嵌在HTML的脚本语言

集成环境

wampserver

php
apache 服务
MySQL 数据库

注意:

PHP代码的时候都放置到wamp64/www目录下面

开发工具

phpstrom

sublime

PHP信息

1
phpinfo();

显示PHP所有的信息

它是模块化的,你需要什么模块,你就去打开对应的模块开关(php.ini)

PHP格式

常用格式

推荐

<?php

?>

短标签格式

<?

?>

如果你想使用这个标签风格格式的话 必须在 php.ini 这个配置文件里面把 short_open_tag = Off 改为 short_open_tag = on

简写打印格式

<?php
    $a = 1;
?>

<?=$a;?>

变量

变量就是可以改变的量

命名规范

1、以$开头,后面跟英文字符

2、严格区分大小写

3、不要以数字和特殊字符开头

4、它可以使用中文 不建议使用

5、可以使用下划线符

6、数字可以加在中间或者是结尾

7、变量名字要有意义

8、遵循小驼峰命名法

命名规则

遵循小驼峰命名法 $className 或者是下划线命名法 $class_name

变量声明的时候两边加上空格

变量操作

1、变量赋值

1
$var = 1;

2、变量输出

1
echo $var;

3、判断一个变量是否存在

1
isset();

4、销毁一个变量

1
unset();

打印输出

输出

1
2
3
4
echo $var;
print($var);
print_r($var);
var_dump($var);

print() 它只能输出一个

print_r() 一般用于打印数组

var_dump() 它不仅仅能输出值,而且还能输出数值的类型。非常常用 用于排错

PHP注释

单行注释://

多行注释:/ /

数据类型

标量

整型 就是整数

1
int $i = 1;

浮点 就是小数

1
float $flo = 0.5;

字符串 引号引起来的都是字符串

1
string $str = 'str';

布尔 真和假 true 和 false

1
boolean $bool = true;

混合类型

数组

1
$arr = array();

对象

1
$obj = new \StdClass();

特殊类型

1
$null = null;

资源

1
$resource = $_FILE;

文件 音频 视频 图片

单引号和双引号的区别

1、单引号不解析变量,双引号解析变量

2、双引号执行转译字符,单引号不转译 \n \t \r \

3、\\ 时会转译成 \

4、能使用单引号的时候尽量不适用双引号 单引号效率比双引号效率高

5、双引号里面插入单引号,单引号里面插入变量,变量会被解析,解析后的值两侧带有单引号

6、如果变量在字符串的中间,变量名字后面还有字符的话,切记用{}把变量括起来或者用空格,不然计算机会认为它是一个整体

heredoc字符串声明

1
2
3
$string = <<<"ABC"
heredoc字符串声明
ABC;

注:
1、定界符(ABC)一般要大写,首尾一致

2、最后一个定界符要顶格写

3、可以单引号双引号相互嵌套

nowdoc字符串声明

1
2
3
$string = <<<'ABC'
nowdoc字符串声明
ABC;

注:

和heredoc一样

null

1、指定变量为空 $a = null;

2、声明了变量但是没有赋值 $b;

3、unset()掉一个变量

常用的函数

1
2
3
4
5
6
7
8
9
10
11
12
is_string();
is_bool();
is_int();
is_float();
is_array();
is_object();
is_null();
is_scalar(); //判断是否是标量
is_numeric(); //判断是否是个数字
isset(); //判断一个变量是否被设置
empty(); //判断一个数组是否为空
is_null(); //判断是否为null

获取数据类型

1
2
gettype(); //获取数据的类型
var_dump(); //获取数据的类型还能获取到值

强制类型转换

方法一

强制转换成为整型

1
intval();

强制转换成为浮点类型

1
floatval();

强制转换成为字符串类型

1
strval();

强制转换成为布尔类型

1
boolval();

方法二

1
2
3
4
5
6
(int)$var 
(float)$var
(string)$var
(bool)$var
(array)$var
(object)$var

注意:

它们都不能改变原来的值,方法二不能为null和resource

设置类型

1
2
$var = 0;
settype($str , "string");

两个参数

第一个参数:变量名字

第二个参数:你要设置的类型

注意:

会改变原来变量的值,类型传入的时候必须要加上引号,不管是单引号或者是双引号

强制类型转换总结

1、null 转换 int 会成为整型的0

2、null 转换 float 会成为浮点型的0

3、null 转换 string 会成为空字符串 ‘’ (不允许有任何的字符包括空格)

4、string 转换 int 会从第一个非数字字符开始,将后面的字符全部干掉

5、string 转换 float 会从第一个非数字字符开始,将后面的字符全部干掉,此处的非数字字符不包括点

6、float 转换 int 不会四舍五入 只保留整数

7、settype(变量名字,’null’) 就等价于 unset(变量名字)

8、intval(变量名字)、(int)变量名字 不会改变原来变量的值settype的时候会改变原来的值

自动类型转换

就是你在做 + - * / % 运算的时候会自动类型转换成为数值类型,再进行运算

1、true 在转换时会变成数值1 false 会变成数值0

2、关于 string 在转换时

1
2
3
$str = 'abc123'; // 0
$str = '123.1.abc'; // 123.1
$str = '123.abc'; // 123

为false的几种情况

1、整型的0 在作为判断条件来使用的时候会变成假,整型的1 2 3…都是真

2、浮点型的0 都是假 除非 后面除非非零的数字

3、空字符串作为判断条件来使用的时候是假,中间连一个空格都不能有

4、空字符的0 作为判断条件来使用的时候为假 0.0000是真

5、空数组作为判断条件使用为假

6、null 作为判断条件使用的时候为假

7、未声明的资源为假

引用

1
$a = &$b;

同时指向了一个内存,如果说中间有一个发生了变化,另一个会跟着变

可变变量

1
2
3
$super = 'man';
$man = 'zhangsan';
echo $$super;

会输出zhangsan

常量

在程序运行的时候 不可以发生改变的量

定义

1
define('常量的名字' , '常量的值');

定义常量注意事项:

1、不能被重复定义

2、常量名字一般大写

3、常量的值一般用标量(字符串 整型 浮点 布尔)

3、常量的作用域是全局的

4、输出的时候不带$

5、常量不能写在字符串里面

6、它的值不能发生改变

判断一个常量是否被定义

1
defined('常量名字');

如果定义了返回true 没定义的返回false

系统常量

1
2
3
4
5
6
7
8
9
10
11
12
13
__FILE__ //返回你当前文件的路径包括文件名
__LINE__ //返回当前代码的所在行数
__DIR__ //返回当前文件所在的目录
PHP_OS //返回你当前的操作系统
PHP_VERSION //返回PHP当前的版本信息 版本号
__FUNCTION__ //返回当前的函数名

M_PI //圆周率

__METHOD__ //获取当前的成员的方法名字
__NAMESPACE__ //获取命名空间
__TRAIT__ //获取trait名
__CLASS__ //获取当前类名

运算符

算术运算符

+ - * / %

赋值运算符

= -= + *= /= %=

自增自减

++ --

在前 先运算 在赋值

$var = ++$i;

在后 先赋值 在运算

$var = $i++;

比较运算符

> < >= <= == ===(绝等于) != !==

=== 不仅仅比较值 还要比较你的数值类型

逻辑运算符

&& //并且

同时为真才是真一个为假就是假

|| //或者

只要有一个为真就是真
!//非

取反 真的是假的 假的是真的

三目运算符

语法定义:

条件 ? 真区间 : 假区间;

运行原理:

如果条件为真就走 真区间 否则 走假区间

注意:

它可以相互嵌套,但是能不嵌套别嵌套

其他的符号

@ 抑制错误信息

=> 数组访问符

-> 对象访问符