2

オブジェクトのコンストラクターで、int 変数 (データベースにフェッチする ID を表す) または配列 (既にデータベースにフェッチした場合) を渡すことができるようにしたいと考えています。

私はこのようなことを試しました:

__construct($var){
     if(isset($var['id'])){ /*tried also if($var['id']) != '')*/
        $this->id = $var['id'];
     }else{
        $this->id = $var;
      }
}

事は、int 値パラメーターを $var として渡すことによって、if の最初のケースに入るということです。

では、$var が (連想) 配列であることを確認するにはどうすればよいでしょうか?

4

4 に答える 4

4

を使用is_int ($var)して、それがintであるis_array ($var)かどうか、および配列であるかどうかを確認できます

于 2012-10-20T11:57:51.653 に答える
1

PHPis_array()is_int()関数を使用できます

if(is_array($var)){
        $this->id = $var['id'];
     }else{
        $this->id = $var;
      }

また

if(is_int($var)){
           $this->id = $var;
         }elseif(is_array($var)){           
           $this->id = $var['id'];
          }
于 2012-10-20T11:57:18.483 に答える
1

チェックする方法は少なくとも 2 つあります
gettype()

$type = gettype($var);
switch($type) {
    case 'array':
        // ....
        break;
    case 'integer':
        // ...
        break;
    // ....
}

そしてまた

is_int()、それぞれis_array()、どういうわけか驚くことではありませんが、値を返しbooleanます。

于 2012-10-20T11:59:00.433 に答える