PHP 5のタイプ制約

2167 ワード

詳細
PHPの関数パラメータにはタイプ制約があります.それは,要求パラメータのタイプを明確にすることである.たとえば、次のコードがあります.
 
 
var;
    }


    /**
     *        
     *            
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}

//     
class OtherClass {
    public $var = 'Hello World';
}
?> 

 
では、タイプコンストレイントにはどのような関係があるのでしょうか.ここには奇妙な問題がある.それは次のことです.
明示的に指定されたパラメータが何らかのタイプの変数である場合、高速PHPのプログラム効率に参加します.どうしてですか.なぜなら、逆はオブジェクトであり、PHP 5のデフォルトは参照で伝達されるからである.したがって、public function test(OtherClass$otherclass){この行のコードには、参照記号はありませんが、実際には参照参照参照参照です.
では、配列は?PHPで我々が直面するビッグデータのタイプは,オブジェクト,配列,文字列の3種類にすぎず,文字列はパラメータテーブルに参照記号(&)を明確に用いるためである.
配列はどうですか.試してみれば分かります.だから、私はあまり言わない!
 
オブジェクトパラメータにタイプコンストレイントが追加されても、デフォルト値はオプションのパラメータになります.この場合,関数内部では,入力パラメータがNULLであるか否かを判断する.しかし、一般的にはinstanceofという演算子は必要ありません.(この演算子は特に、否定する場合は(!(A instanceod B))の形式でなければなりません.)デフォルト値が設定されているコードは次のとおりです.
 
color=$color;
        $this->ca = $ca;
        $this->array = $array;
        $ca->name=$srcStr;
        print_r($this);
    }
}

$cat=new ca();
$cbt=new cb();


$cbt->test('test','red'); //          
$cbt->test('test','blue',$cat); //       ,      
print_r($cat); 
$cat1=new ca();
$arr=array(1,2,3,4,5);
$cbt->test('test','black',$cat1,$arr); //        
array_push($arr,6,7,8,9); //     
print_r($cbt->array); //         。

?>