Scratch File 必须设为 PHP 语言并添加 namespace Scratch; class _ {} 才能启用补全和语义分析,且无法直接运行,需通过 PHP Console 或临时 .php 文件执行。

Scratch File 语言必须设为 PHP,否则补全和解析全失效
新建 Scratch File 默认是 Plain Text,连 echo 都没高亮,array_ 按 Tab 也不会出补全。这不是配置问题,是 PhpStorm 根本没启用 PHP 解析器。创建时务必在弹窗下拉框里手动选 PHP;如果已经建好,点右下角状态栏当前语言名 → 改为 PHP。用 Ctrl+Alt+Shift+Insert 快捷键新建时尤其容易忽略这个下拉框——默认就是 Plain Text,一不留神就废了。
光设语言不够,得加“语义启动咒语”才能触发类型推导
仅设为 PHP 还不行。PhpStorm 只有识别到 namespace 和 class 结构,才会启动完整语义分析:变量类型、函数参数提示、new DateTime() 的方法列表等全靠这个。所以得在文件开头加两行:
namespace Scratch;
class _ {}
之后写 $arr = [1,2]; array_ 才能补全,date() 参数才带提示。写 function test() {} 没用——全局函数体外的调用不被索引;use App\Services\Logger; 也会被直接忽略,要用就得全限定名:new \App\Services\Logger()。
Scratch File 不能直接运行,得借道 PHP Console 或临时文件
右键菜单里没有 “Run Scratch File”,点绿色三角也根本不会出现——这是常见幻觉。真正能跑起来的只有两种方式:
立即学习“PHP免费学习笔记(深入)”;
-
最稳:复制全部内容 → 粘贴进已配置好的
PHP Console(View → Tool Windows → PHP Console),它能加载autoload、.env、Xdebug -
最快:按
Ctrl+S保存为临时.php文件(比如桌面建个tmp.php),右键 →Run 'tmp.php',但记得删,别留在项目里污染 Git
别试 php -r 手动拼接——引号嵌套、变量未定义、作用域丢失(比如访问不到当前文件里的 $user)全是坑。
别指望 Composer 类、配置或自定义函数自动可用
Scratch File 是纯 IDE 内存级草稿区,不走 autoloader、不读 php.ini、也不继承 Xdebug 配置。这意味着:
-
Composer包里的类(如Illuminate\Support\Str)不可见 - 项目里定义的全局函数(
helpers.php里的)无法调用 -
config/下的配置项(如config('app.name'))直接报错
所有依赖都得手动 require 或全限定名硬写,复杂逻辑建议直接切回项目内真实文件测试。



















