新手求助PHP的一个简单问题

先上一段很简单的代码:

<?php
class book {
public $title ;
public $price ;
function get_title ( ) {
echo $title ;
}
function get_price ( ) {
echo $price ;
}
function set_title ($Stitle) {
$this -> title = $Stitle ;
}
function set_price ($Sprice) {
$this -> price = $Sprice ;
}
}
$myBook = new book ;
myBook.set_price(80) ;
myBook.set_title("我的Book") ;
myBook.get_price ( ) ;
myBook.get_title ( ) ;
?>
用Eclipse的PHP插件调试,发生错误:

PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
PHP Notice: Use of undefined constant myBook - assumed 'myBook' in /var/www/temp.php on line 19
PHP Stack trace:
PHP 1. {main}() /var/www/temp.php:0
PHP Fatal error: Call to undefined function set_price() in /var/www/temp.php on line 19
PHP Stack trace:
PHP 1. {main}() /var/www/temp.php:0

小弟初学,不懂,请问这是啥错误?为什么会发生这种错误呢?

第1个回答  2011-03-16
对象语法错误了吧,改成下面的写法就OK了

<?php
class book {
public $title ;
public $price ;
function get_title() {
echo $this->title ; // 调用类中的变量,要用$this 操作符;
}
function get_price() {
echo $this->price ;
}
function set_title ($Stitle) {
$this -> title = $Stitle ;
}
function set_price ($Sprice) {
$this -> price = $Sprice ;
}
}
$myBook = new book() ;
$myBook->set_price("80"); // 调用对象中的方法用 -> 操作符
$myBook->set_title("我的Book");
$myBook->get_price ();
$myBook->get_title ();
?>
第2个回答  推荐于2017-11-24
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
原因:你的配置文件ming.ini中配置有问题:提示的意思是说 你这个文件中的注释不能用#开头,这种注释方式已经过时了··,所以你要检查这个ini文件了,另外,如果我记得的没错的话,ini格式的文件的注释应该是";"分号开头的。

PHP Notice: Use of undefined constant myBook - assumed 'myBook' in /var/www/temp.php on line 19
PHP Stack trace:
PHP 1. {main}() /var/www/temp.php:0
这个是应该你在调用的时候变量符号丢掉了,PHP中的变量的调用需要用变量符号$:
而且,在PHP中类对象访问方法是用->的方式访问,所以做如下更改:
$myBook = new book ;
myBook.set_price(80) ; // -> 应该是$myBook->set_price(80) ;
myBook.set_title("我的Book") ; // -> 应该是$myBook->set_title("我的Book") ;
myBook.get_price ( ) ; //->应该是 $myBook->get_price ( ) ;
myBook.get_title ( ) ; // ->应该是 $myBook->get_title();本回答被提问者采纳
相似回答