私はこの方法を使用しようとしています:
public function setMessage(string $message){
$this->message = $message;
}
次に、このエラーが発生します:
キャッチ可能な致命的なエラー: notifier::setMessage() に渡される引数 1 は文字列のインスタンスである必要があります。
stringどうやらPHPはクラス名として解釈しています。そのような宣言を行うための解決策のようなものはありますか?
私はこの方法を使用しようとしています:
public function setMessage(string $message){
$this->message = $message;
}
次に、このエラーが発生します:
キャッチ可能な致命的なエラー: notifier::setMessage() に渡される引数 1 は文字列のインスタンスである必要があります。
stringどうやらPHPはクラス名として解釈しています。そのような宣言を行うための解決策のようなものはありますか?
PHP は緩く型付けされた言語であり、実際には型を気にせず、とにかく推測します。関数宣言で変数をクラスにのみ制限できるため、を削除するstringとすべて問題ありません。:)
本当に文字列であることを確認したい場合は、gettype()を使用するか、変数を文字列にキャストします。
注 (PHP.net の type-juggline から):
変数を文字列にキャストする代わりに、変数を二重引用符で囲むこともできます。
$foo = 10; // $foo is an integer
$str = "$foo"; // $str is a string
$fst = (string) $foo; // $fst is also a string