使用PHP CLI时执行类时出现问题

时间:2011-02-27 20:13:50

标签: php class command-line command-line-interface

我在LAMP环境中创建了一个包含以下代码的文件test.class.php:

<?php

class MyClass 
{
    public var $variable;
};

$obj = new MyClass();

?>  

当我跑步时:

php myclass.php

从命令行,我收到错误:

  

解析错误:语法错误,意外的T_STRING,在第5行的/path/html/_dev/classes/test.class.php中期待T_OLD_FUNCTION或T_FUNCTION或T_VAR或'}'

如果我通过浏览器访问同一个文件,我没有错误。有关可能发生的事情的任何建议吗?

5 个答案:

答案 0 :(得分:4)

您不需要var个关键字;你应该使用:

public $variable;

这是正确的PHP 5语法。


var是PHP 4的补充,您已经使用过它:

var $variable;

但PHP 4中没有public关键字 - 而public (PHP 5)var (PHP 4)不能一起使用。


有关publicvar和其他同类关键字的更多信息,请参阅PHP手册的此页面:Visibility


至于为什么您的代码在您的网络服务器运行时不会显示任何错误...在一种情况下,可能会导致错误无法显示的配置差异?

注意:CLI和PHP / Apache可以使用不同的配置文件 - 通常也可以。



作为旁注(它没有问题),你不需要在类定义的末尾加分号:你的代码应该是这样的:

class MyClass 
{
    public $variable;
}

$obj = new MyClass();

答案 1 :(得分:0)

确保您正在运行php5的cli:

$ php -v
PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

您可以使用以下命令检查您正在使用的php版本或位置:which php

正如其他人所说,摆脱这个var。但它似乎不是问题。该错误报告private是未知令牌。

祝你好运!

答案 2 :(得分:0)

删除var关键字,没有必要。

<?php

class MyClass 
{
    public $variable;
};

$obj = new MyClass();

?>

答案 3 :(得分:0)

public var $variable;太多了。只需使用其中一个关键字。

答案 4 :(得分:0)

想出来。 PHP命令在我的环境中默认使用的PHP CLI版本是PHP 4.4.8。

我的主机还有一个PHP5命令设置为使用PHP 5.2.14。当我执行命令

PHP5 myclass.php

一切正常。但是,我发布的代码最初产生了另一个错误。在

public var $variable 

行,这是另一个Stack Overflow帖子的解决方案无效。我用

替换了它
public $variable

并且能够通过该更改成功进行测试。

这个链接帮了很多忙 http://www.yiiframework.com/forum/index.php?/topic/4319-error-on-yiibase-php-on-line-55/

相关问题