0

Php を使用して関数内のパラメーターの実際の型を示したい、または示したいと思いますが、可能ですか?

例 :

<?php
function test($param)
{
   echo $param;
}
$str = "hiiiii everyone";
test($str);
?>

関数テストに $param だけを入れる代わりに; みたいなものを入れてみたい

function test(string $param) // string is the type of the param, that can be int, long ect or an object which I had created.

PHPの最新バージョンでそれを行うことは可能ですか?

4

4 に答える 4

1

いいえ。PHPは動的型付け言語です。変数(およびそのようなものとして、パラメーター)にはセットタイプがありません。gettypeあなたは、すなわちを使用してあなた自身のものを強制しようとすることができます:

function test($param) {
    if(gettype($param) != "string")
        throw new TypeException //or something
}

しかし、それは悪い考えです。初めての言語で他の言語の機能を実装しようとしないでください。適切な方法を試して受け入れ、そこからどのように進むかを確認してください。

于 2012-04-18T16:19:05.850 に答える
1

あなたが探しているのはタイプヒントです。ただし、リンクされたマニュアルページに記載されているように:

型ヒントは、intやstringなどのスカラー型では使用できません。

これは、いいえ、関数の引数を文字列にすることはできないことを意味します。特定のクラス、呼び出し可能なもの、または配列のインスタンスにすることができます。

引数を強制的に文字列にする場合は、次のようにします。

function my_func ($mustBeAString) {
  if (!is_string($mustBeAString)) return;
  // Do stuff here
}
于 2012-04-18T16:20:48.127 に答える
1

型ヒンティングは PHP5 で導入されました。例で示したように、パラメーター リスト自体にその型を指定することで、パラメーターを強制的に特定の型にすることができるようになりました。

残念ながら、スカラー オブジェクト ( 、int、 などstring) は許可されていません。

渡されたオブジェクトが適切な型であるかどうかを判断するために、内部で独自のチェックを行うことgettype()is_string()できます。instanceof

于 2012-04-18T16:17:54.660 に答える
0

これをテーブルに持ってきたいと思います:

var_dump($str);
于 2012-04-18T16:16:02.007 に答える