trueまたはfalseを返すメソッドがありますが、型宣言isAdmin() : string
を追加すると致命的なエラーは発生しません。strict_typesが含まれていると動作しません
私はdeclare(strict_types=1);
がクラスの前に含まれる2番目のファイルにあります。 例:
file1.php
<?php
declare(strict_types=1);
file2.php
<?php
include "file1.php";
class Test
{
public function user() : int
{
return true;
}
}
$test = new Test();
var_dump($test->user());
このコードは致命的なエラーがスローされません。代わりに、var_dumpはboolをint(1)
として返します。メソッドの型を文字列に変更すると、var_dumpはboolをstring(1) "1"
として返します。
declare(strict_types=1);
をすべてのモデルファイルに入れないようにするにはどうすればよいですか?
つまり、関数は文字列を返し、ブール値を返します。 –
@headmax彼は 'strict_types'が有効になっていると、なぜこれがなぜ合格と尋ねていると思います。この例では__should__は失敗しますが、明らかにそのパスは失敗します。 – Carey
さらに、if文をスキップすることもできます。戻り値はisset($ this-> type)&& $ this-> type == 3' – Carey