2017-06-25 1 views
0

静的関数の戻り値型宣言の問題に直面していますPHP 7.0.0バージョンです。静的関数の戻り値型宣言の問題

参考:http://php.net/manual/en/migration70.new-features.php

親切に動作しないコードに続いて、次のコード

Following code is working: Non-Static Function 

<?php 

$object = new MyClass(); 
$object->SetName('StackOverflow'); 
echo($object->GetName()); 

class MyClass { 
    private $Name; 

    public function SetName($name) { 
     $this->Name = $name; 
    } 

    public function GetName($name) : string { 
     return $this->Name; 
    } 
} 

?> 

を見て:静的関数

<?php 

$object = new MyClass(); 
$object->SetName('StackOverflow'); 
echo(MyString::Trim($object->GetName())); 

class MyClass { 
    private $Name; 

    public function SetName($name) { 
     $this->Name = $name; 
    } 

    public function GetName($name) : string { 
     return $this->Name; 
    } 
} 

class MyString { 
    public static function Trim($str) : string { 
     return trim($str); 
    } 
} 

?> 

Parse error: syntax error, unexpected ';' in /home2/ramesh/public_html/test.php on line 20

だけではない普通のfunctionstatic functionに生じる問題。親切に私にこれを達成する方法を助けてください。あなたがその「パブリッククラス」グリッチをGetName()方法から$nameパラメータを削除し、修正する場合

+0

'公開されている何クラスMyString'は表現することを意味しますか? 「パブリッククラス」とは何ですか? – arkascha

+0

GetName()メソッドから '$ name'パラメータを削除し、その" public class "グリッチを修正するとうまく動作します。 – arkascha

+0

投稿した内容に応じて、あなたが試した実際のコードではないと仮定しなければなりません。 – arkascha

答えて

0

は私のために罰金作品:

<?php 

$object = new MyClass(); 
$object->SetName(' StackOverflow '); 
var_dump(MyString::Trim($object->GetName())); 

class MyClass { 
    private $Name; 

    public function SetName($name) { 
     $this->Name = $name; 
    } 

    public function GetName() : string { 
     return $this->Name; 
    } 
} 

class MyString { 
    public static function Trim($str) : string { 
     return trim($str); 
    } 
} 

これは明らかに作成し、その出力:

string(13) "StackOverflow"