Class PHP 方法获取和设置
Class PHP methods get and set
我有这个class:
<?php
class Test {
private $_ID;
private $_NAME;
private $_AGE;
public function setID() { $this->_ID++; }
public function getID() { return $this->_ID; }
public function setNAME($element) { $this->_NAME = $element; }
public function getNAME() { return $this->_NAME; }
public function setAGE($element) { $this->_AGE = $element; }
public function getAGE() { return $this->_AGE; }
public function addUser($name, $age) {
Test::setID();
Test::setNAME($name);
Test::setAGE($age);
echo "OK";
}
}
?>
我想创建此 class 的对象,并使用函数 addUser 分配数据,如下所示:
$test = new Test();
$test:: addUser("Peter", "12"); but I have errors.
我有这个错误:
Strict Standards: Non-static method Test::addUser() should not be
called statically in /var/www/public/testManu.php on line 13
Strict Standards: Non-static method Test::setID() should not be called
statically in /var/www/public/class/Test.php on line 18
Fatal error: Using $this when not in object context in
/var/www/public/class/Test.php on line 8
我对变量范围有疑问。谁能告诉我我的问题是什么????
改变这个:
...
public function addUser($name, $age) {
$this->setID();
$this->setNAME($name);
$this->setAGE($age);
echo "OK";
}
...
像Classname::function()
这样的调用只对静态方法有效。您有一个专用实例,需要使用构造 $this->function()
.
来解决
因此:
...
$test->addUser("Peter", "12"); but I have errors.
$test = new Test();
$test -> addUser("Peter", "12"); #now no errors
这应该适合你:
<?php
class Test {
private static $_ID = 1;
private static $_NAME;
private static $_AGE;
public static function setID() { self::$_ID++; }
public static function getID() { return self::$_ID; }
public static function setNAME($element) { self::$_NAME = $element; }
public static function getNAME() { return self::$_NAME; }
public static function setAGE($element) { self::$_AGE = $element; }
public static function getAGE() { return self::$_AGE; }
public static function addUser($name, $age) {
self::setID();
self::setNAME($name);
self::setAGE($age);
echo "OK";
}
}
$test = new Test(); /*You don't need to instantiate the class
because you're calling a static function*/
$test:: addUser("Peter", "12"); but I have errors.
?>
我有这个class:
<?php
class Test {
private $_ID;
private $_NAME;
private $_AGE;
public function setID() { $this->_ID++; }
public function getID() { return $this->_ID; }
public function setNAME($element) { $this->_NAME = $element; }
public function getNAME() { return $this->_NAME; }
public function setAGE($element) { $this->_AGE = $element; }
public function getAGE() { return $this->_AGE; }
public function addUser($name, $age) {
Test::setID();
Test::setNAME($name);
Test::setAGE($age);
echo "OK";
}
}
?>
我想创建此 class 的对象,并使用函数 addUser 分配数据,如下所示:
$test = new Test();
$test:: addUser("Peter", "12"); but I have errors.
我有这个错误:
Strict Standards: Non-static method Test::addUser() should not be called statically in /var/www/public/testManu.php on line 13
Strict Standards: Non-static method Test::setID() should not be called statically in /var/www/public/class/Test.php on line 18
Fatal error: Using $this when not in object context in /var/www/public/class/Test.php on line 8
我对变量范围有疑问。谁能告诉我我的问题是什么????
改变这个:
...
public function addUser($name, $age) {
$this->setID();
$this->setNAME($name);
$this->setAGE($age);
echo "OK";
}
...
像Classname::function()
这样的调用只对静态方法有效。您有一个专用实例,需要使用构造 $this->function()
.
因此:
...
$test->addUser("Peter", "12"); but I have errors.
$test = new Test();
$test -> addUser("Peter", "12"); #now no errors
这应该适合你:
<?php
class Test {
private static $_ID = 1;
private static $_NAME;
private static $_AGE;
public static function setID() { self::$_ID++; }
public static function getID() { return self::$_ID; }
public static function setNAME($element) { self::$_NAME = $element; }
public static function getNAME() { return self::$_NAME; }
public static function setAGE($element) { self::$_AGE = $element; }
public static function getAGE() { return self::$_AGE; }
public static function addUser($name, $age) {
self::setID();
self::setNAME($name);
self::setAGE($age);
echo "OK";
}
}
$test = new Test(); /*You don't need to instantiate the class
because you're calling a static function*/
$test:: addUser("Peter", "12"); but I have errors.
?>