PHP核心笔记

一、语言基础

1. 语法结构

  • 脚本标记:<?php ... ?>(标准)、<% ... %>(ASP兼容模式)

  • 指令分隔符:分号;(语句结束符)

  • 注释方式:

    • // 单行注释

    • # 单行注释(脚本模式)

    • /* ... */ 多行注释

2. 变量系统

  • 声明方式:$variable = value;(无需类型声明)

  • 命名规则:以字母/下划线开头,区分大小写

  • 七大类型:

    • 布尔值(Boolean)

    • 整数(Integer)

    • 字符串(String)

    • 浮点数(Float)

    • 数组(Array)

    • 对象(Object)

    • 资源(Resource)

3. 数据类型检测

is_bool($var); // 布尔值检测
is_string($var); // 字符串检测
is_array($var); // 数组检测
is_object($var); // 对象检测
is_numeric($var); // 数值检测

二、核心特性

1. 面向对象编程

  • 类定义:class ClassName { ... }

  • 对象创建:$obj = new ClassName;

  • 继承机制:extends ParentClass

  • 接口实现:implements InterfaceName

2. 异常处理

try {    // 可能抛出异常的代码} catch (Exception $e) {    echo "Error: " . $e->getMessage();}

3. 命名空间

namespace My\App\Namespace;use Another\Namespace\Classname;

三、数据库交互

1. PDO扩展

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pwd');$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");$stmt->execute(['id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);

2. 预处理语句

$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");$stmt->execute(['John', 'john@example.com']);

四、性能优化

1. 内存管理

  • 引用传递:&$var(避免大数据复制)

  • 垃圾回收:自动管理未引用资源

2. 缓存机制

  • OPcache:PHP内置字节码缓存

  • 数据缓存:Redis/Memcached集成

3. 代码优化

  • 避免在循环内创建新对象

  • 使用isset()替代empty()进行存在性检查

  • 批量操作代替循环插入

五、安全实践

1. 输入验证

// 使用filter_var进行验证$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);if (!$email) {    die("Invalid email address");}

2. SQL注入防护

  • 永远使用预处理语句

  • 避免动态拼接SQL

3. XSS防护

echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

六、扩展开发

1. 扩展结构

extension/├── config.m4├── php_extension.h├── ext_module.c└── ...

2. Zend API

  • 内存管理:ZEND_MM_*系列宏

  • 类型系统:ZEND_PARSE_PARAMETERS_*

  • 返回值处理:RETURN_*

七、调试技巧

1. 错误报告

error_reporting(E_ALL & ~E_NOTICE);ini_set('display_errors', 1);

2. 调试工具

  • Xdebug:调试、性能分析

  • Blackfire:实时性能分析

  • PHPStan:静态分析

八、最佳实践

  1. 遵循PSR标准(PSR-1/PSR-2/PSR-4等)

  2. 使用Composer管理依赖

  3. 编写单元测试(PHPUnit)

  4. 实现自动化部署

  5. 监控系统性能(APM工具)


标签:

相关文章

中山经--山海经

《中山经》薄山之首曰甘枣之山。共水出焉,而西流注于河。其上多杻木;其下有草焉,葵本而杏叶,黄华而荚实,名曰箨,可以已瞢。有兽焉,其状如[虫/虫|犬]鼠而文题,其名曰[嫨能-女],食之已瘿。又东二十里曰...

使用 Vue 3 + TypeScript + Pinia 的简单项目

以下是一个使用 Vue 3 + TypeScript + Pinia 的简单项目示例,我们将创建一个待办事项(Todo List)应用:1. 创建项目bash npm create&nbs...

产品生命周期定义与阶段详解

一、核心概念‌产品生命周期(Product Life Cycle)指产品从进入市场到最终退出市场的完整动态过程。该周期由消费者需求变化、技术迭代及市场竞争共同驱动,反映产品在市场中的经济寿命,与物理使...

用PHP写一个简单的HTTP服务器示例

以下是一个使用 PHP Socket 原生实现的简单 HTTP 服务器示例,支持基础请求处理和响应:<?php // 创建 TCP Socket $socket...

前端错误2

⚠️ 一、错误分类‌运行时错误‌‌类型错误(TypeError)‌:操作数据类型不符(如调用非函数、访问undefined属性)‌引用错误(ReferenceError)‌:使用未定义变量或函数‌语法...

前端物联网开发全面指南

物联网(IoT)技术与前端开发的结合正在创造智能互联的新世界。以下是前端物联网开发的系统介绍:前端物联网开发概述前端物联网开发是指利用HTML、CSS、JavaScript等前端技术实现物联网应用的界...