<?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至少可以知道投票失败的原因。有意思吗?真正关心改善这一点的人。
答案 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