热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为PHP开发者设计,能够根据指定的变量和条件逻辑,生成结构清晰、语法规范的switch case条件分支代码。通过系统化的任务分解和约束验证,确保输出的PHP代码具备良好的可读性、可维护性和错误处理机制,适用于菜单导航、状态管理、类型判断等多种业务场景,有效提升开发效率和代码质量。
<?php
declare(strict_types=1);
/**
* 用户角色权限判定(switch-case 实现)
*
* 返回统一的授权决策结果数组,包含是否允许、权限列表、HTTP状态码和消息。
* 注意:此函数仅做授权判定与结构化输出,不直接发送头信息或中止请求,便于在上层控制器中统一处理。
*/
function authorizeByRole(string $userRole): array
{
// 标准化角色值(去空白、统一为小写)
$role = strtolower(trim($userRole));
if ($role === '') {
// 输入为空属于无效参数,向上抛出以便调用方区分输入错误与授权失败
throw new InvalidArgumentException('User role must not be empty.');
}
// 决策结果基础模板(默认拒绝 + 403)
$decision = [
'role' => $role,
'allowed' => false,
'permissions' => [],
'http_status' => 403,
'message' => 'Access denied.',
];
switch ($role) {
case 'super_admin':
// 系统管理员:全局管理与审计权限
$decision['allowed'] = true;
$decision['permissions'] = [
// 管理与运维
'manage_all',
'user_manage',
'user_delete',
'config_manage',
// 审计
'audit_view',
'audit_write',
// 内容全权
'content_create',
'content_update',
'content_publish',
'content_unpublish',
// 只读
'view_public',
];
$decision['http_status'] = 200;
$decision['message'] = 'Granted: super_admin.';
break;
case 'admin':
// 站点管理员:管理用户与配置,但无审计权限
$decision['allowed'] = true;
$decision['permissions'] = [
'user_manage',
'config_manage',
'content_create',
'content_update',
'view_public',
// 不包含:audit_*、content_publish/unpublish、user_delete
];
$decision['http_status'] = 200;
$decision['message'] = 'Granted: admin.';
break;
case 'editor':
// 内容编辑:可新建与更新内容,不可发布,不可删除用户
$decision['allowed'] = true;
$decision['permissions'] = [
'content_create',
'content_update',
'view_public',
];
$decision['http_status'] = 200;
$decision['message'] = 'Granted: editor.';
break;
case 'reviewer':
// 内容审核:审批发布与下线内容
$decision['allowed'] = true;
$decision['permissions'] = [
'content_approve',
'content_publish',
'content_unpublish',
'view_public',
];
$decision['http_status'] = 200;
$decision['message'] = 'Granted: reviewer.';
break;
case 'viewer':
// 只读访客:仅可查看公开页面
$decision['allowed'] = true;
$decision['permissions'] = [
'view_public',
];
$decision['http_status'] = 200;
$decision['message'] = 'Granted: viewer.';
break;
case 'banned':
// 封禁用户:拒绝所有访问并记录告警
$decision['allowed'] = false;
$decision['permissions'] = [];
$decision['http_status'] = 403;
$decision['message'] = 'Access denied: banned user.';
// 记录安全告警(避免记录敏感信息)
error_log('[SECURITY] Banned role attempted access.');
break;
default:
// 未知角色:拒绝访问并记录警告(仅记录经过白名单字符过滤的角色片段)
$decision['allowed'] = false;
$decision['permissions'] = [];
$decision['http_status'] = 403;
$decision['message'] = 'Access denied: unknown role.';
error_log('[WARN] Unknown role encountered: ' . preg_replace('/[^a-z0-9_\-]/i', '', $role));
break;
}
return $decision;
}
/**
* 可选:权限检查辅助函数
*/
function hasPermission(array $decision, string $permission): bool
{
return $decision['allowed'] === true
&& in_array($permission, $decision['permissions'], true);
}
变量用途:
分支逻辑:
注意事项:
<?php
declare(strict_types=1);
// 假设此值来自已认证用户的会话或令牌,不应直接信任前端传入
$userRole = 'Editor'; // 大小写不敏感,示例值
try {
$decision = authorizeByRole($userRole);
if ($decision['allowed'] !== true) {
http_response_code($decision['http_status']);
// 生产环境可替换为统一错误页渲染
echo $decision['message'];
exit;
}
// 示例:基于权限控制功能按钮/接口
if (hasPermission($decision, 'user_manage')) {
// 展示“用户管理”菜单或允许访问相关接口
}
if (hasPermission($decision, 'content_publish')) {
// 允许发布/下线内容
} else {
// 隐藏发布按钮或禁止调用发布接口
}
// 调试输出(仅开发环境使用)
// echo json_encode($decision, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
} catch (InvalidArgumentException $e) {
http_response_code(400);
echo 'Bad Request: ' . $e->getMessage();
// 可按需记录日志:error_log($e->getMessage());
exit;
}
<?php
declare(strict_types=1);
/**
* 菜单构建器:根据 showAdminMenu 标志生成导航菜单项
*
* 说明:
* - 支持布尔值及常见字符串/数字形式的布尔输入(如 "true"、"false"、1、0),会做安全规范化
* - 使用 switch case 明确区分 true/false 分支,并包含 default 兜底处理
* - 返回的数据适合进一步渲染为 HTML,渲染时会进行必要的转义
*/
/**
* 构建菜单项数组
*
* @param mixed $showAdminMenu 期望为布尔值;若为字符串/数字,会尝试转换;非法值将回退为 false
* @return array<int, array{label:string, url:string}>
*/
function buildMenuItems($showAdminMenu): array
{
// 1) 规范化输入:确保为布尔值;非法输入安全回退为 false,并记录日志
if (!is_bool($showAdminMenu)) {
$normalized = filter_var($showAdminMenu, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
if ($normalized === null) {
// 记录一次可审计的告警日志;生产环境建议接入统一日志系统
error_log('[menu] showAdminMenu is not boolean, fallback to false');
$showAdminMenu = false;
} else {
$showAdminMenu = $normalized;
}
}
// 2) 基础公共菜单项(普通导航)
$items = [
['label' => '首页', 'url' => '/'],
['label' => '产品', 'url' => '/products'],
['label' => '支持', 'url' => '/support'],
];
// 3) 使用 switch 分支控制是否追加管理菜单
switch ($showAdminMenu) {
case true:
// 显示管理菜单:渲染控制台与运维入口
$items[] = ['label' => '控制台', 'url' => '/admin/console'];
$items[] = ['label' => '运维入口', 'url' => '/admin/ops'];
break;
case false:
// 隐藏管理菜单:仅保留普通导航项(无需额外处理)
break;
default:
// 理论上不会触达(已做规范化),保留兜底以增强健壮性
error_log('[menu] Unexpected value in switch(showAdminMenu), no admin items added');
break;
}
return $items;
}
/**
* 将菜单项数组安全渲染为 HTML 字符串
*
* @param array<int, array{label:string, url:string}> $items
* @return string
*/
function renderMenuHtml(array $items): string
{
$html = "<ul class=\"nav\">\n";
foreach ($items as $item) {
// 安全转义,防止 XSS
$label = htmlspecialchars($item['label'], ENT_QUOTES, 'UTF-8');
$url = htmlspecialchars($item['url'], ENT_QUOTES, 'UTF-8');
$html .= " <li class=\"nav-item\"><a class=\"nav-link\" href=\"{$url}\">{$label}</a></li>\n";
}
$html .= "</ul>\n";
return $html;
}
变量用途:
分支逻辑:
注意事项:
<?php
require_once __DIR__ . '/menu.php'; // 假设以上代码保存在 menu.php
// 示例1:明确布尔值 true,显示管理菜单
$itemsWithAdmin = buildMenuItems(true);
echo renderMenuHtml($itemsWithAdmin);
// 示例2:来自请求参数(字符串),内部会自动规范化为布尔值
$userInput = $_GET['showAdminMenu'] ?? 'false'; // 例如 ?showAdminMenu=true
$itemsFromInput = buildMenuItems($userInput);
echo renderMenuHtml($itemsFromInput);
// 示例3:明确布尔值 false,仅显示普通导航
$itemsWithoutAdmin = buildMenuItems(false);
echo renderMenuHtml($itemsWithoutAdmin);
测试方法:
帮助PHP开发与管理团队在最短时间内产出可直接粘贴使用的条件分支代码模板,自动补齐默认与异常路径,统一注释与处理风格,显著减少if-else嵌套带来的维护成本。通过简单输入变量名、类型、业务场景与分支列表,即刻生成清晰、稳健、可复用的switch-case结构,覆盖菜单导航、权限控制、订单状态流转、类型判断、支付方式选择等高频场景。目标是让个人开发者更快交付、让团队评审更顺畅、让代码更易读易改,从而提升产能、降低缺陷率,最终形成可沉淀的团队标准与模板资产。
快速产出清晰可靠的条件分支代码,用于权限校验、菜单控制等模块,避免遗漏与低级错误,顺利通过代码评审。
在复杂状态流转场景中高效搭建分支骨架,优化注释与结构,提升可读性与执行效率,减少线上问题与维护成本。
以统一模板推动团队规范落地,缩短审查时间,降低返工次数,确保生产环境中的分支处理完整且可追溯。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期