No.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が呼ばれます。
第一引数を変数などで動的に与えてやれば、簡単に呼び出す関数の切り分けが出来たりします。
No.2
- 回答日時:
あります。
目的によって使うテクニックも違います。
どういう状況を想定していますか?
質問をされるなら、具体的に内容を書かれたほうがいいです。
この回答へのお礼
お礼日時:2009/11/02 11:35
回答ありがとうございます。
ええと具体的にですと、以下の利点?を使ったパターンが知りたいです。
・型を宣言しなくても良い
・クラス、関数定義を動的にできる
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) スクリプトとスクリプト言語は同じ意味ですか? 1 2022/06/12 11:47
- ダンス・バレエ 日本のバレエ教育と海外のバレエ教育の違い 3 2022/05/02 11:41
- CGI 掲示板専用スクリプトなどを使わなくてもプログラミング言語のみで作れますか? 3 2022/06/12 17:49
- その他(プログラミング・Web制作) 掲示板専用スクリプト(http://php365.com/)などを使わなくてもプログラミング言語のみ 4 2022/06/12 20:44
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- その他(悩み相談・人生相談) テクニックで稼いだり、テクニックでバズって有名になることってできるんでしょうか? 例えばYouTub 1 2022/12/10 18:47
- 医学 ぼる塾 1 2022/05/11 11:09
- Google 翻訳 正確な翻訳アプリってありますか?特に英語と日本語に強いものが欲しいです。 無料、有料どちらでもokで 2 2022/08/16 16:02
- 英語 英語に詳しい方に質問です。 2 2022/06/21 15:33
- マウス・キーボード 何故、ローマ字や英語を全角で打つ? 5 2022/05/15 09:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
クラス設計の良い参考書を教え...
-
配列とオブジェクトの違い
-
クラス内でメソッド呼ぶ際、thi...
-
phpのクラスにて別ファイルの変...
-
ユーザ定義関数にデフォルト引...
-
phpで使用不可のクラス名
-
スクリプト言語特有のテクニック
-
正規表現について
-
phpのクラスについて
-
'_'(アンダースコア)の使い方...
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
【file_exists】ファイルが存在...
-
バッチを用いたフォルダの自動移動
-
現在位置より2つ上のディレク...
-
$_SESSION 有効期限をブラウザ...
-
.phpと.incファイルの違いはな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
class定義のphpをファイル分割...
-
PHPの名前空間について質問です。
-
配列とオブジェクトの違い
-
phpのクラスにて別ファイルの変...
-
PHP4、PHP5 1ファイル複数クラ...
-
文字連結中の三項演算子について
-
PHP5 コンストラクタや初期化の...
-
プログラムにも慣例みたいなも...
-
(クラス関連)staticキーワー...
-
phpで使用不可のクラス名
-
phpにおける初期化の意味
-
PHPでサブクラスからスーパクラ...
-
クラス
-
[CakePHP2.2] :: の意味と役割
-
phpで時間を増やしていくにはど...
-
PHPでオブジェクト指向開発して...
-
$this->pets[$i]->report();の...
-
ソースファイルの分け方について
おすすめ情報