• ベストアンサー

同機能の、「組み込み関数」と「ユーザ関数」、両者の性能差について。

hogehoge78の回答

  • ベストアンサー
回答No.3

■車輪の再開発を防ぐ方法 JavaJavax2さんの仰るとおり「よく調べる」しかないのですが、 ・公式のPHPマニュアルをよく読む。 ⇒ありがちなのが配列操作だったりしますが、array_***という名前で大量に関数あります。 また、sort関数の説明のところに「sort() は » Quicksort でそれを実装しています。 」と書いてあったりします。 これで、quicksortのアルゴリズムでソート関数を作るという車輪の再開発は防げますね。 また、公式のPHPマニュアルの関数リファレンスの下部にある、ユーザ投稿部分は凄く参考になるので、目を通してみるのがオススメです。 ・googleですげー調べる ⇒基本中の基本ですが。自分で考えてることなんて、大概誰かが4000年前に通り過ぎてるとおもいつつ、参考になるものが出てくるまで単語組み替えて調べて見るというのが良いと思います。 特に、PHPは、他の言語に比べて誰かが何かを書き残している量が圧倒的に多いと思われます(印象ですが) ・システム作る前に、似たようなシステムのオープンソースとか、ライブラリとか誰かが作った製作物を眺める ⇒人の製作物は、自分が利用したことのない関数とか出てくることがままあります。ソースの流れを読めば何のためにソレを使っているかが大体わかりますしね。 そういった目的でソースを読むときは、php editorがオススメです。PHPの標準ハイライト表示と同じ色分でアサインされている関数名は青い色で表示されます。

march4
質問者

お礼

冒頭を読み、 改めて、ホゲホゲさんは優しい方なのだなぁと、感じました。 では、本題へ。 >ありがちなのが配列操作だったりしますが、array_***という名前で大量に関数あります。 まさに。(笑) 質問の発端は、このあたりにあります。 あまりの鋭さに、ドキっとしました。^^; >ユーザ投稿部分は凄く参考になるので、目を通してみるのがオススメ はい◎ 努力します! 英語と仲良くします。笑 >googleですげー調べる 「すげー」が印象的でした。ほっ、ホゲホゲさんっ…。 >自分で考えてることなんて、大概誰かが4000年前に通り過ぎてるとおもいつつ この考え方、いいですね。笑 なぜか、ラーメンマンが頭に浮かびましたが、とても頷けるお話でした。 >参考になるものが出てくるまで単語組み替えて調べて見るというのが良い はい、目を皿のようにして、すげー探し回るように致します。 >似たようなシステムのオープンソースとか、ライブラリとか誰かが作った製作物を眺める はい、4000年の歴史を紐解いて参ります。 >php editorがオススメです 実は、エディタについても、気になっていたんですよね~。 私は現在、dreamweaverCS3を使っていますが、 php editorの使用経験もあります。 使用経験というより、試用経験ですが。笑 あと、Notepad++というエディタなんかもDLしてみました。 こちらはご存知かもしれませんが、 コーディングスタイルを色々なデザインの中から選べたりして、 なかなか面白いエディタです。 また、ifやwhile等の開始と終了を分かりやすく表示してくれる機能などもあります。 (DWにも、このような機能があれば良いのに…。) というわけで、教えて頂いた通りに、まずはやってみようと思います! どうもありがとうございました!

関連するQ&A

  • 関数の組み込み。

    PHPでの関数の組み込みの質問です。 自作の関数を集めたPHPファイル"common_function.php"を製作し、 それぞれの処理の頭でこの関数ファイルをinclude_onceを使って 読み込んでいるという形式で処理を行っています。 include_once("../common/common_function.php"); この処理を行わずにこの関数ファイルををデフォルトで読み込む ようにPHPの設定に組みこむ事はできないのでしょうか? よい方法があれば宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP 設定ファイルとユーザ定義関数

    ある機能を満たすためのライブラリ(lib.php)を作成しました。 このlib.phpはユーザ定義関数の寄せ集めです。 それぞれのユーザ定義関数では、設定ファイル(config.php)に記述されている共通変数を利用します。 このconfig.phpなのですが、ユーザ定義関数ごとにincludeする以外の方法はあるでしょうか? lib.php function one() { $hensu1... $hensu2... ...処理; } function two() { $hensu1... ...処理; } .... config.php $hensu1 = 1; $hensu2 = 2; ... という構成です。 function one,function twoでconfig.phpの変数を利用したいのですが、lib.phpの先頭でinclude "config.php"をしてもfunctionの中では変数のスコープが有効にはならず、 lib.php function one() { include "config.php"; ...処理; } function two() { include "config.php"; ...処理; } としています。 PHP5を使用しています。 function one() { global $hensu1... } としたらよいのでしょうか? どなたかアドバイスいただけますと幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • VBAユーザー関数を外部から制御

    ExcelのVBAで、標準モジュールにワークシートで使うユーザー関数を記述しています。 ユーザー関数は、使い勝手を組み込みのワークシート関数と同様にするため、 Application.Volatile (True) で自動再計算するようにしており、数百カ所以上のセルに使用しています。 しかし、他のVBAモジュールでユーザー関数の戻り値が変わるような操作をすると、その都度 数百か所以上が再計算されるため、非常に時間がかかります。 ユーザー関数のApplication.Volatile (False) にすると瞬間で終了する処理が、数分かかる場合も あります。 他のVBAモジュールから、一時的にユーザー関数の処理内容を変更するようなことは可能でしょうか。

  • データベースのユーザ定義関数について

    PHP4.3.1、MySQL4.1.13を使用して、Webアプリケーションを製作しております。 幾つかの参考書籍やこれら情報に関するWebなどを見ていますと、後々データベースが変更になった時を考え、それぞれのデータベース用の関数を利用せずユーザ定義関数で処理した方が良いと書かれていました。 ただ、データーベースの処理と言っても様々な処理があると思いますし、それら全てをユーザ定義関数で置き換えなくてはならないのかな?と疑問(迷い)を感じております。 皆様は、どの様にされていますでしょうか?または、どの様に考えたら良いでしょうか?プログラミングの基本的な事かもしれませんが、どなたかご教授いただけないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • ユーザ関数の呼び出し方法 その2

    ユーザ関数の呼び出し方法 http://oshiete1.goo.ne.jp/qa3567728.html で、質問をさせて頂いた者です。 お陰様で、だいぶ出来てきました。 frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 メニュー用のPHPに //処理部分 <?php if($_GET["mode"] == 1){ //処理1のスクリプト include("./ee.php"); ads(); } と、しました。 そうすると 左のメニュー画面にデータが表示されてしまいます。 右のデータを表示する画面に更新したい場合 どのように書けば宜しいですか? --------------- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php">

    • ベストアンサー
    • PHP
  • PHPの機能制限

    お世話になります 環境はlinux centos6 + php を使っています。 ユーザーにブラウザ上で任意のサーバサイド言語を記述でき、実行できる環境を作ろうと考えています。 ユーザーには悪意のあるユーザーも含まれます。 使用したいものは変数,配列,連想配列、関数はfor,if,foreach,replace系,match系,split,explode 以上のみで他の関数は実行できないようにしたいです php又は他の言語に機能制限みたいなものが存在すれば実現できると思うのですが そのようなものはあるのでしょうか? smarty等のテンプレートエンジンは元々そういう用途のものではないので 思わぬ事故が起きそうでなるべく使用したくありません。 これを実現するには replaceやmatchを駆使してphpの上で動く独自のミニ言語を作る他ないのでしょうか なにか手がかりをご存知の方お教え頂けると嬉しいです。

    • ベストアンサー
    • PHP
  • CPUの違いとクロック数の違いでの性能の差

    現在、CPUの買い替えを検討しているのですが Pentium D3.0GHzとCore 2 Duo E4300 1.8Ghzだと 単純に性能だけを見ると処理能力ではどちらが上なのでしょうか? また、処理速度に不満がある場合CPUを変えるのとメモリを増設 するのはどちらのほうが良いのでしょうか?

  • ユーザ定義関数の引数にクラスのインスタンスを渡すことは可能?

    いつもお世話になっております。 (PHP5.2.5) 質問: ユーザ定義関数の引数に、 「クラスのインスタンス」を渡すことは可能ですか? 例: <?php  //クラスをインスタンス化する。(例:PDOクラス)  $conn = new PDO($dsn,$user,$pass);  //ユーザ定義関数に上記のクラスのインスタンスを与えている  user_func($conn);  //ユーザ定義関数の定義部  function user_func($conn){   $sql = '~SQL文~';   $stmt = $conn->prepare($sql);   :   :処理   :  } ?> 関数に渡すことのできる引数の型について、 なかなか見つけられず、初歩的な質問をしてしまっているかもしれませんが、 どうぞ宜しくお願い致します。        

    • ベストアンサー
    • PHP
  • ユーザ関数function の扱いについて。

    おそらくは、初歩的な質問なのだろうとは思いますが、どうぞよろしくお願い致します。 早速ですが、質問に入ります。(PHP4または5での話です。) //関数を定義 function test($a){   $b = $a*100;   print $b;   return $b; } //テキトーに値を用意して変数に格納 $c = 5; //------------------------ 作った関数を使ってみる //------------------------ //(その1)関数内の処理結果をprintしてくれるものと思って使っている。 test($c); //------------------------- //(その2)関数内の処理結果の戻り値を変数$dで受け、それをprint。 //「その1」との違いを調べたくて、こんなことをしている。 $d = test($c); print $d; //------------------------------- さて、何が言いたいかと言いますと(笑)、 まず、上記(その2)に着目して頂いて、 関数定義の中でprint()を使用している関数に対し、 その定義の中にreturnがあるからと、 $dでその戻り値を受けているわけですが、 この場合、print()で出力した値は、一体、どこへ行ってしまったのでしょうか。 このような質問のしかたをしていますが、 分からないのは、この辺りの処理の流れ全体なんです。 つまり、print()したものがどうなったのかだけが知りたいわけではなく、 ユーザ関数内のprintとreturnの関係とか、そのあたりです。(笑) return; が来たら関数内の処理を抜ける、 ということは分かっています。 以上、1つずつ順を追って説明して頂けると助かります。 //-------------------補足------------ //新たに関数を定義 function test2($a){   $b = $a*100;   print $b; } $e = 5; $f = test2($e); //returnのない関数から戻り値を受け取ろうとしてもダメ //ということは、こんな私にでも分かっています。 //---------------------------- 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • エクセルのユーザーフォームでVLOOKUPと同じ機能をするには?

    エクセルのユーザーフォームで、VLOOKUP関数と同じ機能を持たせるには、どうすればいいですか?マクロ初心者なので、わかりません。  そして、ユーザーフォームで検索したものを別のシートのセルに 反映させる方法も教えて下さい。よろしくお願いします。  たとえば、エクセルで住所、名前等の名簿から、ユーザーフォームで検索し、検索したデータを、年賀状はがき等の作成した様式に反映させるといった感じのもの何ですけど・・・。