当前位置:首页 > PHP

php实现接口

2026-02-13 13:18:54PHP

PHP 实现接口的方法

定义接口

接口使用 interface 关键字定义,可以包含方法声明但不包含实现。所有方法默认为公共方法。

interface PaymentGateway {
    public function processPayment($amount);
    public function refundPayment($transactionId);
}

实现接口

类使用 implements 关键字实现接口,必须提供接口中所有方法的具体实现。

php实现接口

class StripePayment implements PaymentGateway {
    public function processPayment($amount) {
        // Stripe 支付处理逻辑
        return "Processed payment of $amount via Stripe";
    }

    public function refundPayment($transactionId) {
        // Stripe 退款处理逻辑
        return "Refunded transaction $transactionId via Stripe";
    }
}

多接口实现

一个类可以实现多个接口,用逗号分隔。

interface Logger {
    public function log($message);
}

class PayPalPayment implements PaymentGateway, Logger {
    public function processPayment($amount) {
        // PayPal 支付处理逻辑
        return "Processed payment of $amount via PayPal";
    }

    public function refundPayment($transactionId) {
        // PayPal 退款处理逻辑
        return "Refunded transaction $transactionId via PayPal";
    }

    public function log($message) {
        // 日志记录逻辑
        echo "Log: $message";
    }
}

接口继承

接口可以继承其他接口,扩展功能。

php实现接口

interface AdvancedPaymentGateway extends PaymentGateway {
    public function authorize($credentials);
}

class SquarePayment implements AdvancedPaymentGateway {
    public function processPayment($amount) {
        // Square 支付处理逻辑
    }

    public function refundPayment($transactionId) {
        // Square 退款处理逻辑
    }

    public function authorize($credentials) {
        // Square 授权逻辑
    }
}

类型提示

接口可用于类型提示,确保参数实现特定接口。

function handlePayment(PaymentGateway $gateway, $amount) {
    echo $gateway->processPayment($amount);
}

$stripe = new StripePayment();
handlePayment($stripe, 100.00);

常量定义

接口可以包含常量,实现类不能覆盖这些常量。

interface Shipping {
    const DEFAULT_COUNTRY = 'US';

    public function calculateShipping($address);
}

class FedExShipping implements Shipping {
    public function calculateShipping($address) {
        // 使用接口常量
        if ($address['country'] === Shipping::DEFAULT_COUNTRY) {
            return 5.00;
        }
        return 15.00;
    }
}

实际应用示例

REST API 接口实现

interface ApiEndpoint {
    public function handleRequest($requestData);
}

class UserEndpoint implements ApiEndpoint {
    public function handleRequest($requestData) {
        switch ($_SERVER['REQUEST_METHOD']) {
            case 'GET':
                return $this->getUser($requestData['id']);
            case 'POST':
                return $this->createUser($requestData);
            default:
                throw new Exception('Method not allowed');
        }
    }

    private function getUser($id) {
        // 获取用户逻辑
    }

    private function createUser($data) {
        // 创建用户逻辑
    }
}

// 使用示例
$endpoint = new UserEndpoint();
try {
    $response = $endpoint->handleRequest($_REQUEST);
    echo json_encode($response);
} catch (Exception $e) {
    http_response_code(400);
    echo json_encode(['error' => $e->getMessage()]);
}

数据库访问接口

interface DatabaseAdapter {
    public function connect($config);
    public function query($sql);
    public function close();
}

class MySQLAdapter implements DatabaseAdapter {
    private $connection;

    public function connect($config) {
        $this->connection = new mysqli(
            $config['host'],
            $config['user'],
            $config['password'],
            $config['database']
        );
    }

    public function query($sql) {
        return $this->connection->query($sql);
    }

    public function close() {
        $this->connection->close();
    }
}

注意事项

  • 接口方法必须被实现类全部实现,否则会触发致命错误
  • 接口不能包含属性,只能包含方法和常量
  • 实现接口时方法签名必须完全匹配(参数数量和类型)
  • PHP 8.0 开始支持接口中的静态方法
  • 接口可以用于实现多继承效果,因为类可以实现多个接口

标签: 接口php
分享给朋友:

相关文章

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…