报个错Parseerror:syntaxerror,unexpected'static'(T_STATIC),
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了报个错Parseerror:syntaxerror,unexpected'static'(T_STATIC),,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5029字,纯文字阅读大概需要8分钟。
内容图文
![报个错Parseerror:syntaxerror,unexpected](/upload/InfoBanner/zyjiaocheng/207/97b7c5818bf7458a9d0ad7d58527c329.jpg)
<?phpclass ShopProduct{ private $id = 0; private $title; private $producerMainName; private $producerFirstName; protected $price; private $discount = 0; function __construct($title,$firstName,$mainName,$price){ $this->title = $title; $this->producerMainName = $mainName; $this->producerFirstName = $firstName; $this->price = $price; } function setDiscount($num){ $this->discount = $num; } function getDiscount(){ return $this->discount; } function getTitle(){ return $this->title; } function getProducerFirstName(){ return $this->producerFirstName; } function getProducerMainName(){ return $this->producerMainName; } function getId(){ return $this->id; } function setId($id){ $this->id = $id; } function static getInstance($id,PDO $pdo){ $stmt = $pdo->prepare("select * from products_4 where id =?"); $result = $stmt->execute(array($id)); $row = $stmt->fetch(); if(empty($row)){ return null; } if($row['type']=='book'){ $product = new BookProduct( $row['title'],$row['firstname'],$row['mainname'],$row['price'],$row['numpages'] ); } elseif($row['type']=='cd') { $product = new CdProduct( $row['title'],$row['firstname'],$row['mainname'],$row['price'],$row['playlength'] ); } else{ $product = new ShopProduct( $row['title'],$row['firstname'],$row['mainname'],$row['price'] ); } $product->setId($row['id']); $product->getDiscount($row['discount']); return $product; } function getPrice(){ return "({$this->price} - {$this->discount})"; } function getProducer(){ return "{$this->producerFirstName}". " {$this->producerMainName}"; } function getSummaryLine(){ $base = "{$this->title} ( {$this->producerMainName}"; $base .= " {$this->producerFirstName} )"; return $base; }}class CdProduct extends ShopProduct{ private $playLength = 0; function __construct($title,$firstName,$mainName,$price,$playLength){ parent::__construct($title,$firstName,$mainName,$price); $this->playLength = $playLength; } function getSummaryLine(){ $base = parent::getSummaryLine(); $base .= ": playing - time {$this->playLength}"; return $base; }}class BookProduct extends ShopProduct{ private $numPages = 0 ; function __construct($title,$firstName,$mainName,$price,$numPages){ parent::__construct($title,$firstName,$mainName,$price); $this->numPages = $numPages; } function getNumPages(){ return $this->numPages; } function getSummaryLine(){ $base = parent::getSummaryLine(); $base .= ": page count - {$this->numPages}"; return $base; } function getPrice(){ return $this->price; }}$dsn = "mysql:host=localhost;dbname=test";try{ $pdo = new PDO($dsn,"root","root"); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $obj = ShopProduct::getInstance(1,$pdo);}catch(PDOException $e){ echo $e->getMessage();}print_r($obj);
Parse error: syntax error, unexpected 'static' (T_STATIC), expecting identifier (T_STRING) in D:\Apache24\htdocs\PHP_OBJECT\4\4.1.2.php on line 46
function static getInstance 静态变量为什么这样写报错呢? static function 这样就可以输出数据?
回复讨论(解决方案)
function static 写反了,应为
static function
function static 写反了,应为
static function
这个在php文档上有写吗?
可能有吧,这是常识!
static function getInstance($id,PDO $pdo){
static 是修饰 function 的,是说名为 getInstance 的 function 是静态的
而你写成 function static getInstance($id,PDO $pdo){ 的话
且不说 static 的位置不对
function 后面应该是函数名,难不成就是 static getInstance ?
函数名也不能拆成两段呀,这不合语法
可能有吧,这是常识!
static function getInstance($id,PDO $pdo){
static 是修饰 function 的,是说名为 getInstance 的 function 是静态的
而你写成 function static getInstance($id,PDO $pdo){ 的话
且不说 static 的位置不对
function 后面应该是函数名,难不成就是 static getInstance ?
函数名也不能拆成两段呀,这不合语法
class StaticExample{
public static $aNum = 0 ;
private static function sayHello(){ // private static 和static private两样排序都可以??
self::$aNum++;
print 'hello ('.self::$aNum.')';
}
function getSayHello(){
self::sayHello();
}
}
StaticExample::$aNum;
$staticExample = new StaticExample();
$staticExample->getSayHello();
但是这样没有报错,php版本是5.4.32的
看错了,谢谢您。结账。
function static getInstance 改为 static function getInstance
static是修饰符,按语法规则需要写在被修饰的变量或方法前面。
内容总结
以上是互联网集市为您收集整理的报个错Parseerror:syntaxerror,unexpected'static'(T_STATIC),全部内容,希望文章能够帮你解决报个错Parseerror:syntaxerror,unexpected'static'(T_STATIC),所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。