2017-09-15 7 views
0

私のWordPress 4.8、PHP 7.1プロジェクトでは、自分のメソッドで型宣言を使用すると厳密で強制的ではありません。しかし、厳密な型を使用すると宣言したことはありません。PHP 7のstrict_typesがグローバルに有効になっているようですか?

WordPressでこれをどこに設定しますか?私は明らかに単語strict_typesを検索しましたが、何も見つかりませんでした。

グローバルに有効にできますか?私が読んだすべてのものにもかかわらず、それはできないと言っていますか?

具体的には、私のメソッドのシグネチャは次のとおりです。

my_method(int $id, string $string) 

そして、私はそれが好きで呼んでいる:

、あなたはあなたのコメントの例に基づいて本を尋ねたいくつかのタイプを想定し
my_method(123, null) 
+0

:https://github.com/krakjoe/autostrictしかし、それ以外の私は、あなたが 'strict_types'が有効であることをどのように決定するか疑問を持っています。 – Narf

+0

strict_typesが有効であることを示唆する証拠を私たちと共有できますか?あなたが受け取る意味コードサンプル/メッセージ? –

+1

どのようなタイプですか?いくつかのタイプは強制できません。 –

答えて

2

strict typingが有効になっていなくても、他のタイプに強制することはできません。

function my_method(int $id, string $string) { 
    var_dump($id, $string); 
} 

$stringパラメータためnull値を渡すと、

my_method(123, false); // int 123, string '' 
my_method(123, 456);  // int 123, string '456' 
よう TypeError、たとえ物事が発生します。あなたのコメントからの方法の一例を無意味な実装に例えば

は、警告を表示することなく、指定されたタイプに強制変更することができます。

PHP 7.1を使用しているので、新しいnullable type declarationを使用してnull値を許可することができます。サーバは、これがインストールされている可能性が

function my_method(int $id, ?string $string) { ... 
関連する問題