You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Tinker执行带参数PHP脚本报错,如何正确传递参数?

解决Laravel Tinker执行带参数脚本的问题

问题原因

你原命令中的50000被Laravel Tinker(实际是底层的PsySH)当作要加载的PHP文件路径,而非传递给脚本的参数,因此触发了include(50000)的错误——系统找不到这个文件。当用<重定向输入时,命令行末尾的参数属于tinker命令本身,不会传递给你通过管道输入的脚本。

正确传递参数的方法

方法1:通过环境变量传递(推荐)

执行命令时先设置环境变量,脚本内读取该变量:

MY_PARAM=50000 php7.1 artisan tinker < phpscript.php

在phpscript.php中替换$argv[1]为:

$param = getenv('MY_PARAM');
// 后续逻辑使用$param即可

方法2:拼接参数到脚本内容

用echo和cat把参数注入到脚本开头,再传递给Tinker:

echo "<?php \$param = 50000; " | cat - phpscript.php | php7.1 artisan tinker

脚本里直接使用$param变量,无需依赖$argv。

方法3:手动设置$argv数组(临时应急)

在phpscript.php的最开头添加一行,手动模拟命令行参数数组:

$argv = ['phpscript.php', 50000];

然后执行去掉末尾参数的命令:

php7.1 artisan tinker < phpscript.php

这种方法适合临时测试,但参数硬编码,灵活性较差。

内容的提问来源于stack exchange,提问作者Skittles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:35:04