function・returnヤマシタ2017/5/252019/8/7PHPではJavaやCのようなブログラミング言語同様に、自分で定義した関数(function)を作成することができます。・return(返り値)とは・returnの基本的な使い方で関数の返り値の指定方法を解説いたします。まとめ関数とは関数とは値を演算したり、条件分で判断したり、データを登録したりなど、特定の動作をまとめて入れておく箱のようなイメージです。PHPでは関数は大きく分けて2つあります。・組み込み関数PHPで提供している関数(配列を結合するarray_merge関数や文字列検索を行うstrposなど)。・ユーザー定義関数ユーザーが独自に処理を記述した関数。この記事では主に後者のユーザー定義関数について解説していきます。ユーザー定義関数はfunctionを指定することで、使用することができます。関数の書き方ユーザー定義関数(function)は以下のように定義します。関数名()」の形式で記述します。関数の呼出しは「関数名()」で指定します。...);functionに引数を指定する場合は、呼び出す側でも引数に値をセットしておく必要があります。関数の使い方ここではfunctionを指定した関数の使い方を見ていきましょう。引数なしまずは引数を指定しない簡単な関数のプログラムを紹介します。foo()の中に記述している処理が実行されるとなります。引数あり続けて引数を指定した関数の使い方を見ていきましょう。関数に引数を指定することで、渡された関数の内部で引数の値を元に処理をすることができます。foo($val)の中で引数$valの演算結果を出力するとなります。関数は一度定義すれば何度でも呼び出すことができます。以下の処理では配列をループで回して、要素の値を引数として配列を呼出しています。引数の型を指定する関数には引数の型を指定(タイプヒンティング)することができます。引数の型を指定しておけば、指定した型以外の型が引数で渡されたときにエラーを返します。~」のエラーが発生します。引数にデフォルト値を設定する関数の引数にはデフォルト値を設定することができます。呼び出し元によってはNULLを渡してしまう可能性があるときなどに、あらかじめデフォルト値をセットしておけば、NULL参照のエラーを防ぐことができます。//10実行結果:10010実行結果から分かるように関数呼出し時に正しく値がセットされているときは、関数の定義で初期化した値は適用されません。return(返り値)とはPHPでは、関数を使用するときにfunctionを指定して関数名を定義します。関数を使用すれば、関数内で独立した処理を実行することが可能となりますが、関数内の処理結果を取得したい場合は、returnオプションを指定して返り値を取得することができます。関数内でreturnを指定すれば、関数の処理の途中でも任意の場所で関数を呼び出し元に制御を戻すことができます。returnは以下のように指定します。$返り値;}なお、関数を途中で終了する場合は、返り値を指定せずに任意の場所でreturnのみを記述することで制御が呼び出し元に戻ります。returnの使い方ここでは実際に関数にreturnを指定して関数の処理を途中で終了したり、関数の返り値を取得する処理について見ていきましょう。前述したように関数内での実行結果をreturnオプションを指定して、返り値として取得することができます。以下に直径の値を関数の引数に渡して、関数の中で円周の長さを計算して計算結果を返す簡単なサンプルを紹介します。:15.7サンプルでは、円周の長さを関数内で取得するために引数で直径の値を渡しています。関数GetPIでは引数で渡された直径の値を元に円周の長さを計算して、計算結果をreturnで返しています。このように関数の演算結果を呼び出し元の処理で取得するには、returnを使用すると便利であることがわかりますね!また、returnで指定する返り値には文字列や配列を指定することも可能です以下のサンプルでは、戻り値に文字列Stringを指定しています。engineer続いて、戻り値に配列を指定するサンプルです。pineapple)関数の途中で処理を終了する関数の処理の途中で関数を終了する場合は、処理を戻したい箇所でreturnのみ指定することで関数が終了します。以下にreturnを指定して処理を終了する方法を記述します。'プログラム終了';?>実行結果:関数の処理を終了するプログラム終了このサンプルでは値10を指定した変数を関数fooに渡しています。関数の中ではif文で渡された値より20のほうが大きかったら、if文内でreturnを指定して関数の処理を終了しています。$val」が実行されていません。真偽値を指定する関数の返り値には真偽値(bool型)を指定することも可能です。関数内で指定した値が存在した場合はTRUEを、存在しなかったらFALSEを取得したい場合にreturnで真偽値の値を指定します。以下に指定した値の存在有無の結果で真偽値を返す方法を記述します。$fruits1.'は存在します。';}?>実行結果:orangeは存在します。サンプルでは関数fruitsに引数で配列と検索する値をif文の中で指定しています。関数の処理では、渡された引数の配列に指定した値が存在するかif文でin_array関数を使用してチェックし、存在したらtrueを、存在しなかったらfalseを返します。if文は評価がtrueの場合if文内の処理を実行しますので、関数呼び出し元の処理結果がtrueのためif文の処理を実行しています。2018年12月21日PHPを継続的に学習するコツPHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。目的を明確にするまずは、なぜPHPを学んでいるのか明確にしましょう。PHPを学んでWebサイトが作りたいWordPressの編集がしたいエンジニアとして転職したいフリーランスを目指したいなど、目的は色々あると思います。この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。ならないためにも、PHPを学ぶ目的は言えるようにしましょう。言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。目的から学んでいる言語があっているか確認しましょう。学習プランを決める目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。先生を見つける「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。調べて直したけどうまく動かないしどうなってんのこのように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。ならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。いったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。投資のもう一つの方法がプログラミングスクールで学ぶことです。独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。スクールに入るのは抵抗がありますよね。その場合は、弊社で行っている無料体験レッスンへ参加してみてください。この無料体験レッスンでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。・返り値(return)とは・returnの基本的な使い方などについて解説しました。関数の処理や処理結果をreturnで取得することはよくありますので、この機会に覚えておきましょう。functionやreturnの使い方を忘れてしまったら、この記事を思い出してくださいね。TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人ヤマシタシステムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。