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


标签:

相关文章

前端面向对象

在前端开发中,“面向对象”思想的应用主要集中在代码组织、组件设计和架构模式等方面。以下是前端面向对象开发的核心概念和实践:‌1. 面向对象的核心概念‌‌封装‌:将数据(属性)和操作数据的方法(行为)捆...

前端数组

一、核心操作方法‌增删元素‌push():尾部添加元素,返回新长度 pop():删除并返回最后一个元素 unshift():头部添加元素,返回新长度 shift():删除...

数组和对象

数组和对象是编程中最基础且强大的两种数据结构,它们的联合使用可以构建出复杂且高效的数据处理方案。本文将全面介绍数组与对象联合使用的各个方面,包括基本概念、不同语言的实现方式、最佳实践、性能优化以及常见...

Node.js 的 readline 模块

Node.js 的 readline 模块是用于逐行处理输入/输出流的核心模块,特别适合交互式命令行应用和大文件逐行解析以下是关键特性和用法:一、核心功能‌逐行处理‌通过事件驱动机...

php 高级

PHP 高级编程涉及多个层面的技术与实践,主要包括面向对象编程(OOP)、命名空间、自动加载、异常处理、反射、依赖注入、缓存技术以及安全性等。以下是几个关键的高级特性与技巧:1. 面向对象编程(OOP...

HTML基础入门教程 - 网页结构与标签详解

### 🌟 HTML初学者福音!一文带你从零开始构建网页🌟嘿小伙伴们,今天咱们要聊的是网页开发界的“入门砖”——HTML!没错,就是那个能让咱们从零开始搭建起自己小天地的神奇语言。准备好了吗?让我们一...