Can';t将命令行参数传递给运行PHP CLI的NSTask

Can';t将命令行参数传递给运行PHP CLI的NSTask,php,objective-c,cocoa,macos,nstask,Php,Objective C,Cocoa,Macos,Nstask,编辑:[已解决]见下文 我将PHP作为一个NSTask启动,并尝试向其传递一些命令行选项: NSTask *php = [[NSTask alloc] init]; [php setLaunchPath: phpPath]; NSArray *args = [[NSArray alloc] initWithObjects: @"-r 'echo 123;'", nil ]; [php setArguments: args]; [php launch]; 当我从Objective-C运行此程序时

编辑:[已解决]见下文

我将PHP作为一个
NSTask
启动,并尝试向其传递一些命令行选项:

NSTask *php = [[NSTask alloc] init];
[php setLaunchPath: phpPath];
NSArray *args = [[NSArray alloc] initWithObjects: @"-r 'echo 123;'", nil ];
[php setArguments: args];
[php launch];
当我从Objective-C运行此程序时,总是会出现以下PHP错误:

用于:
@“-r‘echo 123;”
@“-r\echo 123;\”
@“-r\”回波123\“”
分析错误:语法错误,第1行的命令行代码中出现意外的$end

用于:
@“-r'echo'你好\';”
分析错误:语法错误,第1行的命令行代码中出现意外的T_字符串

用于:
@“--运行'echo 123;'”
用法:php[选项]…

应该注意的是,当从Objective-C调用PHP解释器时,所有错误都会从PHP解释器报告,但是当我在命令行上尝试完全相同的选项字符串时,它会按预期工作

这里怎么了?我应该如何编写参数以正确地传递给NSTask


PS:我真正的目标是执行一些
include()
行,而不是echo,它也不起作用,相反,我得到了一个意外的封装字符串错误。

哦,我在另一个问题上看到了它。
我正在治疗
-r'echo 123;'
作为单个参数,当它们实际上是两个时,应该是:
NSArray*args=[[NSArray alloc]initWithObjects:@“-r”,@“echo 123;”,nil]

很抱歉谢谢。

不太可能有什么不同,但是如果您使用
echo(123)而不是
echo 123?不,不是这样,反正我已经找到了解决方案,见下文。谢谢