1 Star 6 Fork 0

N0ts / note

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
PHP.md 8.70 KB
一键复制 编辑 原始数据 按行查看 历史
N0ts 提交于 2021-10-12 11:21 . 📝[Docs]: update

PHP变量

global

函数内访问全局变量,需要添加global 关键字; ```php $a = 1; $b = 2; $c; function sum() { global $a, $b, $c; $c = $a + $b; } sum(); echo $c; ``` 运行结果:

3

 

Static

函数完成时会删除所有的变量来节省内存,如果不需要删除变量则使用 Static 变量名; 来声明变量 ```php function num() { static $a = 1; echo $a; echo '
'; $a++; } num(); num(); num(); ``` 运行结果: 1 2 3

参数传递

调用函数时传递参数 ```php function num($a) { echo $a; } num(5); ``` 运行结果:

5

 

var_dump()

用来输出变量的相关信息 ```php $a = 1; $b = 1.234; $c = "wdnmd"; $d = true; $e = array(1, 2, 3); $f = null; var_dump($a); echo "
"; var_dump($b); echo "
"; var_dump($c); echo "
"; var_dump($d); echo "
"; var_dump($e); echo "
"; var_dump($f); ```

输出结果: int(1) float(1.234) string(5) "wdnmd" bool(true) array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } NULL

 

类型比较

php变量定义都是用$来定义,让系统自己判断定义类型,属于弱类型语言

在比较的时候就分了两种比较类型

  • 松散比较:只比较值;==
  • 严格比较:比较值与类型;===
```php if (1 == true) echo "1"; else echo "0"; echo "
"; if (1 === true) echo "1"; else echo "0"; ``` 输出结果:

1 0

 

常量

常量为不可改变的值,并且是全局的

define(常量名, 常量值)

define("a", "hello");
echo a;

输出结果:

hello

类型转换

自动转换

系统自己判定转换需要的类型

    $a = 111;
    $b = '111abc';
    echo $a + $b;

结果:222

手动强制转换

强制转换类型

    $c = 'abc123';
    $d = '123abc';
    echo '<br />', (int)$c, '<br />',  (int)$d;

结果: 0 123

要点

  • 以字母或符号开头的字符串转换数值永远为0
  • 以数字开头的字符串转换数值只截取到字母或符号

数据类型判断

类型判断函数

is_xxx,用于判断指定数据类型是否相同,并返回true或false

    $a = 'wdnmd';
    var_dump(is_int($a), is_string($a));

结果: bool(false) bool(true)

bool类型不能用echo去查看,可以使用var_dump查看

获取数据类型

gettype(数据名)

    $a = '1.1abc';
    echo gettype($a);

结果: string

改变数据类型

settype(数据名)

    $a = '1.1abc';
    echo settype($a, 'int');

结果: 1

文件包含

include && require

引入其他php文件,区别在于include出现报错不影响代码继续执行,require则相反的遇到报错直接终止

把文件读取到字符串

file_get_contents() 把整个文件读入一个字符串中。

echo file_get_contents("test.txt");

解析json并返回数组

PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

$变量 = json_decode(Json数据, true);

读取ini文件并返回数组

parse_ini_file() 函数解析一个配置文件(ini 文件),并以数组的形式返回其中的设置。 第二个参数为true就是多维数组

$变量 = parse_ini_file("文件位置", true);

截取字符串

strrpos(); 获取指定字符的位置

    $str = "wdwafu%dwajdi";
    echo strrpos($str, '%');

结果:6

substr(); 截取指定位置字符串

echo substr('abcdef', 1);      //输出 bcdef
echo substr('abcdef', 1, 2);   //输出 bc
echo substr('abcdef', -3, 2);  //输出 de
echo substr('abcdef', 1, -2);  //输出 bcd

PDO

PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。

class db
{
    // 连接地址
    public $host = "mysql:host=localhost;dbname=test;";
    // 账号
    public $name = "root";
    // 密码
    public $password = "20181119";

    // 数据库实例
    public $pdo;

    /**
     * 连接
     * db constructor.
     */
    public function __construct() {
        try {
            $this->pdo = new PDO($this->host, $this->name, $this->password);
        } catch (PDOException $e) {
            echo $e;
            die();
        }
    }

    /**
     * 查询
     * @param $sql
     * @return array|false|PDOStatement|null
     */
    public function select($sql) {
        $res = $this->pdo->query($sql);
        if(!$res) {
            return $res;
        }
        return $res->fetchAll(PDO::FETCH_ASSOC);
    }

    /**
     * 增删改
     * @param $sql
     * @return bool
     */
    public function exc($sql) {
        $res = $this->pdo->exec($sql);
        if ($res == 0) {
            return false;
        }
        return true;
    }
}

mysqli

连接数据库

新建一个mysqli对象并存储数据库地址、用户名、密码、数据库名的信息; 使用if判断连接过程是否存在错误,同等于执行连接操作

$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
 
// 检测连接
if ($conn -> connect_error)
{
    die("连接失败: " . mysqli_connect_error());
} 
else
{
    echo "连接成功";
}

//关闭连接
mysqli_close($conn);

创建数据表

连接信息需指定数据库名称! 执行query方法并判断是否执行成功

$conn = new mysqli(地址,用户名,密码,数据库名);
$sql = "create table lovexhj(
    id int primary key,
    name varchar(30) not null,
    age int not null
)";

if($conn -> query($sql) === true)
{
    echo "<br />" . "数据表创建成功!";
}
else
{
    echo "<br />" . "错误!" . $conn -> error;
}

新建数据表

$sql = "create table lovexhj(
    id int primary key,
    name varchar(30) not null,
    age int not null
)";

if($conn -> query($sql) === true)
{
    echo "<br />" . "数据表创建成功!";
}
else
{
    echo "<br />" . "错误!" . $conn -> error;
}

插入多行数据

使用multi_query(语句);这个方法即可执行里面的多条语句并判断是否成功

$sql = "insert lovexhj(id, name, age) values(2, '闸总', 18);";
$sql .= "insert lovexhj(id, name, age) values(3, '闸总', 18);";
$sql .= "insert lovexhj(id, name, age) values(4, '闸总', 18);";
if($conn -> multi_query($sql) === true)
{
    echo "<br />" . "数据插入成功!";
}
else
{
    echo "<br />" . "错误!" . $conn -> error;
}

预处理语句

先使用prepare方法将语句传递到数据库但不执行,然后使用bind_param来绑定需要的参数对应的类型 可用类型为:

  • s:string字符串
  • i:int整型
  • d:double双精度浮点型 最后填入对应参数并使用execute执行语句,从而达到只做了一次查询; 对防止SQL注入是非常有用的
//预处理语句
$sql = $conn -> prepare("insert lovexhj values(?, ?, ?);");
$sql -> bind_param("isi", $a, $b, $c);

//设置参数
$a = "1";
$b = "wdnmd1";
$c = "18";
//执行
$sql -> execute();

$a = "2";
$b = "wdnmd2";
$c = "18";
$sql -> execute();

$a = "3";
$b = "wdnmd3";
$c = "18";
$sql -> execute();

echo "<br />插入成功!";

//关闭
$sql -> close();

查询数据

使用query方法将查询结果保存到变量里面,判断变量是否存在行数,最后通过fetch_assoc循环取出数据并输出

$sql = "select * from lovexhj;";
$result = $conn -> query($sql);

if($result -> num_rows > 0)
{
    while($row = $result -> fetch_assoc())
    {
        echo "ID:" . $row["id"] . " - " . "Name:" . $row["name"] . " - " . "age:" . $row["age"] . "<br>";
    }
}
else
{
    echo "没有数据";
}

Cookie

setcookie(name, value, time)

// 设置 cookie
setcookie("test", "Test");
// 设置一小时内的 cookie
setcookie("test", "Test", time() + 3600);
// 存入数组
$arr = ["123", "456"];
setcookie("arr", serialize($arr));
// 取出数据
var_dump(unserialize($_COOKIE("arr")));

spl_autoload_register 自动加载

spl_autoload_register 是一个实现**自动加载类的函数,自动加载类**就是我们在 new 一个 class 的时候,不需要手动去写require来导入这个class.php文件,程序自动帮我们加载导入进来

1
https://gitee.com/n0ts/note.git
git@gitee.com:n0ts/note.git
n0ts
note
note
master

搜索帮助