dポイントプレゼントキャンペーン実施中!

ってなにかありますでしょうか?

A 回答 (3件)

スクリプト言語、ということですがまぁPHP限定の内容で話ます。



>・型を宣言しなくても良い
ユーザ関数、クラスメソッド共に戻り値を設定しなくて良いので、
配列を返すメソッドを作ったとして、正常に返せない場合に、falseを返すことが出来ますね。(ソレがいいことか分かりませんが。)
<?php
function getArray(){
$result = array();
if(/*なんか都合が悪いことが起こった場合*/){
return false;
}
return $result;
}
?>
他にも、型を持たないということは、関数などの引数に何でもいれられますね。
<?php
function hogehoge($param){

if(is_object($param){ //与えられた引数がオブジェクトだったら

//何か処理

}elseif(is_array($param){ //与えられた引数が配列だったら

//何か処理

}elseif(is_string($param){ //与えられた引数が文字列だったら

//なんか処理

}
}
?>
CakePHPのModelにある、findメソッドなんかが参考になるかと。
http://book.cakephp.org/ja/view/73/Retrieving-Yo …

そもそも配列に文字列だろうが数値だろうがなんだろうが混ぜて挿入することが出来るのが大きな利点ではないでしょうか。

>・クラス、関数定義を動的にできる
ファクトリメソッドなんかが作りやすいです。
<?php
class Hoge{

public static function factory($driver){

$driver = ucfirst($driver);
$class = "Hoge_{$driver}";

if(class_exists($class)){
return new $class();
}

if(file_exists($class.'.php')){
require_once($class.'.php');
return new $class();
}

return null;
}

}
?>
とか。
他にもcall_user_funcという関数がありまして、
call_user_func('file_get_contents', '引数');
なんて記述してやると、file_get_contentsが呼ばれます。
第一引数を変数などで動的に与えてやれば、簡単に呼び出す関数の切り分けが出来たりします。
    • good
    • 0

あります。



目的によって使うテクニックも違います。
どういう状況を想定していますか?
質問をされるなら、具体的に内容を書かれたほうがいいです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ええと具体的にですと、以下の利点?を使ったパターンが知りたいです。
・型を宣言しなくても良い
・クラス、関数定義を動的にできる

お礼日時:2009/11/02 11:35

どのようなケースのモノを期待しているかわからないので答えようがないかと



スクリプト言語と非スクリプト言語をどう切り分けて理解されているのでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ええと具体的にですと、以下の利点?を使ったパターンが知りたいです。
・型を宣言しなくても良い
・クラス、関数定義を動的にできる

お礼日時:2009/11/02 11:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!