PHP核心笔记

admin3个月前 (12-17)it知识368

一、语言基础

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工具)


标签: 分享IT知识

相关文章

在树林里

乡长正想坐到餐桌旁吃午饭,忽然有人来报告,说是农田巡查员抓到两个人,正等在乡长办公室里听候发落。乡长匆匆赶去,只见农田巡查员霍希多尔老人面容严肃地站在那里,一双眼睛注视着一对年纪已经不轻的城里男女,俨...

如何利用ai 挣钱

以下是2025年普通人利用AI技术实现创收的主流方式,涵盖多个领域且实操性强:一、内容创作类‌AI图文生成‌通过ChatGPT、火山写作等工具批量生成自媒体文章/短视频脚本,调整20%内容规避平台检测...

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

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

人工智能能拥有人一样的智慧吗

一、本质差异:AI与人类智慧的核心区别‌技术基础与能力边界‌人工智能的“智慧”源于算法与数据,擅长处理结构化信息并执行预设规则下的任务(如医学影像分析、语言生成等),但缺乏自主意识与情感理解能力‌人类...

前端核心三件套

一、核心三件套HTML5‌语义化标签(<header>/<section>)离线存储(localStorage/sessionStorage)‌Canvas/SVG图形绘制能力...

产品经理的主要职责是什么

产品经理的主要职责可以概括为以下几个核心方面,这些职责共同确保产品从概念到市场的成功:一、‌产品规划与战略制定‌‌市场调研与需求分析‌研究行业趋势、竞争对手动态及用户行为,挖掘潜在需求。通过用户访谈、...