基本PHP类创建原因解析错误:解析错误

时间:2014-10-15 15:48:59

标签: php ajax

 <?php


  class TEST{
    public $x=1;
    private $y=2;
    
    public function changeA($val){
      //$this->x = $val;
      echo "X-->".$this->x;
    }
    
    private function changeB($val){
      //$this->y = $val;
      echo "Y-->".$this->y;
    }
  }
  
  $a = new TEST();

  $a->changeA(3);
  # 
  $a->changeB(4);

这真让我烦恼,我使用了所有正确的语法,但我在CLASS test行上遇到了错误。

Parse error: parse error in file.php on line x

测试: - 删除变量,函数,新对象。什么都没有解决。

====上面更新了代码,但仍然是同样的错误。

我认为我的php有问题...我现在正在运行所有不同类型的代码,即使echo返回相同的错误。我认为我的php设置存在一些其他问题。

===上次更新

我使用Ajax传递值并写入带有755和公共访问权限的php文件。这似乎是一种过程打嗝。现在它正常运作。但这个例子仍然非常有用。 嗯,不知道什么是投票结果,似乎有理由标记投票失败的原因以及那些需要投票关闭它的人。所以SO至少可以知道投票失败的原因。有意思吗?真正关心改善这一点的人。

2 个答案:

答案 0 :(得分:2)

类方法定义不是语句,因此不应以;终止。

这意味着第11,16和17行的};应该只是}

另一方面,我不知道您使用的是哪个版本的PHP。我正在使用PHP 5.5并得到一个非常明确的信息:

  

解析错误:语法错误,意外';',期望第11行test.php中的函数(T_FUNCTION)

答案 1 :(得分:0)

通过简单的例子来练习它自己的工作原理总是很好。

这可能有助于澄清事情。

class test
{
    public $x; 
    private $y; 

    function __construct() {
        echo "-- Constructor --<br/>";
        $this->changeX(1);
        $this->changeY(2);
        echo "-- Exiting Constructor --<br/>";
    }   

    public function changeX($val) {
        $this->x = $val;
        echo "X-->".$this->x."<br/>"; // for debugging purpose only
    }   

    private function changeY($val) {
        $this->y = $val;
        echo "Y-->".$this->y."<br/>"; // for debugging purpose only
    }   

    public function changeYprivate($val) {
        $this->changeY($val); // can call private method here
    }   

    public function getY() {
        return $this->y;
    }   
}  

  $objTest = new test();

  echo "X is ".$objTest->x." and Y is ".$objTest->getY()."<br/>";
  $objTest->changeX(3);
  $objTest->x = 10; // ok x is public, it can be modified
  $objTest->changeYprivate(4);

  // $a->changeY(4); // Error : cannot call this function outside the class !
  // $objTest->y = 20; // Error : y is private !
  // echo $objTest->y; // Error ! Can't even read y because it's private

  echo "X is ".$objTest->x." and Y is ".$objTest->getY()."<br/>";

输出:

-- Constructor --
X-->1
Y-->2
-- Exiting Constructor --
X is 1 and Y is 2
X-->3
Y-->4
X is 10 and Y is 4