IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP学习 -> 正文阅读

[PHP知识库]PHP学习

变量

变量命名
$开头 $a = 1 ;
输出可以用echo 逗号分隔
echo $a, $b;
echo $a. $A;
都可以
C语言命名一致就行

注释

和 C 的注释规则一致

数据类型

布尔 true false
不带小数点,整形
带小数点,浮点型
字符串
单引号直接输出
双引号可以应用变量

$a = 'nihao';
$aa = 'nihao $a';
$aaa = "nihao $a";

换行是echo ‘
’;
php全用单引号,html全用双引号

乱码转换为中文

header('content-type:text/html;charset=utf-8');

停止程序

die(); // 后面的程序不会执行

永久转换

settype($aim, typeval()); // 其中的typeval()可以是floatval等

可变变量

把一个变量作为另外一个变量使用

$name = 'tom';
$tom = '汤姆';
echo $name.'<br />';
echo $tom.'<br />';
echo $$name;

$后面只要加上字符串就可以成为一个变量名

查看变量类型

var_dump(expr);

预定义变量

系统自带变量

const 常量

不被篡改

define('name', 'tom');

运算符

字符串连接符

echo $a.$b;

其中的 + - * / % 和 python 完全一致
能用 += 语法
支持 ++ 和 – 运算
其中的 == 只是显示的东西一致,=== 表示的是完全相同
!= 和 !== 完全一致
比较运算符号 >= 和 <=

逻辑运算符

|| 和 && 和 !
三元运算符 (expr1)?(expr2):(expr3);

流程控制

选择结构

if () {
} else if () {
} else {
}

switch 基本不需要大括号

switch () {
	case '':
		echo ' ';
		break;
	case '':
		echo '';
		break
	default:
		break;
}

while

$a = 1;

while ($a < 10) {
    echo $a.'<br />';
    $a ++ ;
}

for 循环

$a = 100;
for ($i = 0; $i <= $a; $i ++ ) {
    echo $i.'<br />';
}

在双引号中使用变量可以使用{}

for ($j = 1; $j <= 9; $j ++ ) {
    for ($i = 1; $i < $j; $i ++ ) {
        echo "{$i}x{$j}=".($i * $j).' ';
    }

    echo '<br />';
}

数组

声明

$arr = array(1,2,3,4,5);
$arr[] = 1; // 默认下标0
$arr[] = 2;
$arr[] = 3;
var_dump($arr);

使用 $arr[] = 直接在后面添加

字典

$arr = ['name'=>'tom', 'name'=>'james'];
echo $arr['name'];

遍历

$arr = [0=>1,1=>2,2=>3];

for ($i = 0; $i < count($arr); $i ++ ) {
    
}

其中的 count 是计算数组的长度
foreach 取出字典的键名和值

$arr = [0=>1,1=>2,2=>3];
foreach($arr as $a => $b) {
    echo $a.' '.$b.'<br />';
}

二维数组

数组的数组

$arr1 = [1, 2, 3];
$arr2 = [2, 3, 4];
$arr3 = [$arr1, $arr2];

遍历二维数组

$arr1 = [1, 2, 3];
$arr2 = [2, 3, 4];
$arr = [$arr1, $arr2];
for ($i = 0; $i < count($arr); $i ++ ) {
    for ($j = 0; $j < count($arr[$i]); $j ++ ) {
        echo $arr[$i][$j].'<br />';
    }
}

函数

function functionName(函数参数) {
    
}

不需要标注数据类型

函数类型

默认参数

function weike($name = '猪') {
    return '烤'.$name.'<br />';
}

$chicken = weike();
echo $chicken;

引用变量

$a = 1;
function test(&$b) {
    $b = 2;
}
test($a);
echo $a;

使用 & 引用符号

变量作用域

脚本中的是全局变量
函数内的是局部变量
如果想要在函数中使用全局变量需要使用 global 关键字

$a = 1;
function test() {
    global $a;
    echo $a;
}
test();

也可以使用 $GLOBAL,它包含了全局变量域中的全部变量

$a = $GLOBAL['a'];

函数内部的局部变量设置为全局变量,可以在脚本文件中运行

function test() {
    global $a;
    $a = 2;
}
test();
echo $a;

特殊函数

递归函数:自己调用自己

function test($a) {
    if ($a == 100) {
        return;
    } else {
        echo $a.'<br />';
        $a ++ ;
    }
    test($a);
}
test(1);

static $i 的作用和 const 限定的作用相似

可变函数,可以变换函数名,函数名加上括号就是调用

function test() {
    echo 'hah';
}
$a = 'test';
$a();

匿名函数

$name = function () {
    echo 'hah';
};

$name();

相当于将函数交给变量,也是要定义,特殊赋值。

预定义函数

is_null() 判断是否是空
time() 返回时间
include ‘index.php’; 和 import 很像

面向对象

类的定义

class Dog {

}

class 是标识符,类名后面没有小括号

class Dog {
    public $name = 'name';
    private $score = '100';
    
    public function eat() {
        echo '啃骨头';
    }
}

必须有权限修饰符 public 和 private
实例化必须有new

$dog = new Dog();

调用属性的时候要使用 -> 而不是 .

echo $dog->name;

调用方法也使用->

修饰符

public 外界可以调用,protect 和 private 外界无法访问
在这里插入图片描述
三种权限

构造与析构函数

[修饰符] funciotn __construct() {
    // 方法体
}

this 在 class 中的使用

class Aclass {
    public $color;

    public function __construct($name) {
        $this->color = $name;
        echo "我是构造函数".'<br />';
    }
}

$a = new Aclass('哈哈');
echo $a->color;

析构函数是做善后工作的,所有任务完成后,执行析构函数。

class Aclass {
    public $color;

    public function __construct($name) {
        $this->color = $name;
        echo "我是构造函数".'<br />';
    }

    public function __destruct() {
        echo '最后执行的是析构函数'.'<br />';
    }
}

魔术方法

双下划綫一定是魔术方法,不需要手动调用,增强健壮性
__get 与 __set ,不可访问数值的控制

set(arg1, arg2);
get(arg);

set 必须两个参数, get 一定是一个参数

class Person {
    protected $age;
    private $money;

    public function __get($name) {
        var_dump($name);
        echo '<be />';
    }

    public function __set($name, $value) {
        var_dump($name);
        echo '<br />';
        var_dump($value);
        echo '<br />';
    }
}

$obj = new Person(0, 0);

$obj->age = 1;
$obj->money = 1000;

get 直接一指就行, 先一指再给值就是 set 方法

静态成员

class 中的 static 值要被引用了,永远都只是这一个对象。
使用方法

修饰符 static 名字 [=属性]

访问静态属性使用类名加上::

class Person {
    public static $age = 18;
    
    public static function test() {
        echo "我是静态方法".'<br />';
    }
}

Person::$age; // 外部访问

内部访问静态变量,使用self::类名 的方式

define

define(name, value); // 全局常量

const

类常量定义和调用
定义用 const
调用要有名字区域

class Person {
    const NAMES = 'james';

    public static function get() {
        echo self::NAMES;
    }
}
echo Person::NAMES.'<br />';
Person::get();

继承

从已有的类继承旧的信息,派生类
关键字是 extends

class new extends old {
}

只能继承public

封装

干一件事情,封装到一个类中

接口

格式

interface AAname{
    const NAME = 'TOM';
    public static function test();
    public function demo();
}

一定没有属性,一定是基类,没有方法体
抽象

abstract public function name([参数])

使用接口

interface AAname{
    const NAME = 'TOM';
    public static function test();
    public function demo();
}

abstract class Person implements AAname {
    public static function test() {
        echo '静态测试';
    }
    
    public function qz() {
        echo '葡萄';
    }
}

命名空间

namespace hunan;

关键字namespace
用某个空间中的某个函数

use hunan\Person as P;

第二空间用第一空间的数据

namespace Hunan;
header('content-type:text/html;charset=utf-8');

class Person {
    public function __construct() {
        echo '我是hunan空间的';
        echo '<br />';
    }
}

// 类常量 函数 类
const NAME = '我是hunan空间的';
function test() {
    echo NAME;
    echo '<br />';
}

namespace Csha;
use hunan\Person as P;
use const hunan\NAME;
use function Hunan\test;

namespace 一定要放在第一句
use 要用反斜杠
魔术函数

echo __NAMESPACE__;

如果命名空间使用异常,考虑是不是版本太低了。

子命名空间

命名空间中的命名空间

namespace Hunan;
class H {
    public function __construct()
    {
        echo 'weike';
    }
}

$h = '\Hunan\H';
$aa = new $h;

如果直接 new 命名空间,相当于直接调用了内容

文件系统

file_exists($path);
filesize($file); // 文件大小
$type = filetype($path);

$file = fopen("index.php", 'r+');

判断文件存在
判断文件大小
判断文件类型
打开文件

fwirte($file, $string);

文件写
操作文件输出内容

file_put_contents($file, $data);

解决phpMyAdmin无法登陆

解决办法

现在的mysql密码

Root@123

POD

php 连接数据库的接口

$type = 'mysql'; // 设置数据库类型
$host = 'localhost'; // 设置数据库的域名
$dbname = 'wuliu'; // 数据库的名称
$user = 'root';
$password = 'Root@123'; // 密码

$dsn = "{$type}:host={$host};dbname={$dbname}";
$pdo = new PDO($dsn, $user, $password);

连接操作 POD(数据来源,用户名,密码)

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章           查看所有文章
加:2021-07-10 11:30:34  更:2021-07-10 11:31:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 5:43:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码