当前位置:首页 > PHP

php实现接口

2026-02-13 13:18:54PHP

PHP 实现接口的方法

定义接口

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

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

实现接口

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

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";
    }
}

接口继承

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

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);

常量定义

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

php实现接口

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记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…