PHP5技術者認定上級試験、勉強方法①

PHP5技術者認定上級試験、勉強方法①

PHP5技術者認定上級試験に合格しましたので
その勉強方法等、これから受験する方に向けての記事です。
要点だけまとめましたので試験前にさらっと確認すると良いかと思います。

下記の公式問題集に沿って要点をまとめてみました。
今回は1章の関数になります。
下記のテキストをやり込めば合格は確実です。

第1章 関数

関数は以下のようにfunctionで定義します。
以下は私(ユーザ)が定義したのでユーザ定義関数になります。
関数に対する入力を受ける変数(ここでは$num1と$num2)をパラメータ(仮引数)と言います。



関数名は大文字、小文字が区別されません。
※変数は大文字小文字が区別されます。
数字で始まる関数名は記載できません。アルファベットもしくはアンダースコアです。


PHP終了タグ?>とPHP開始タグ<?phpがこの順番で現れた場合、2つのタグに囲まれたテキストがそのまま出力されます。



変数の有効範囲をスコープといいます。
$numberは関数の外で宣言しているため、グローバルスコープの変数になります。



グローバルスコープの変数にアクセスする場合、以下のように記述します。



以下の場合$numberは関数内での宣言ですので関数レベルのスコープになります。
そのため関数の外からアクセスすることはできません。



関数内の変数は関数の呼び出しが完了するときに消えてしまいます。
最初のfunc()の呼び出しで$numには1が入力されますが2回目のfunc()の呼び出し時まで値を維持しません。



値を維持するにはstaticキーワードを利用します。



参照渡しのパラメータでは仮引数に&$numのように&と記述します。
関数内での変更が引数として与えた変数にも及びます。


下記のように変数を参照することもできます。

※テキスト27ページに$b =& func($a)という記載がありますが
Only variables should be assigned by referenceというエラーがphpバージョンによっては出現します。
どうもphp5.4以降は関数を参照することができないようです。



以下は参照渡しのパラメータではありませんがglobalキーワードを利用することで、関数内での変更が引数として与えた変数に及びます。
同様に6と出力されます。
※globalキーワードを外せば5と出力されます。



パラメータ=値という構文でデフォルト値を設定することができます。
引数(パラメータ)の省略は可能ですが、それ以降の引数も省略してください。
※func(4,,6);という記述はエラーとなる。



func_num_args()は関数に与えられた引数の数を返します。



func_get_args()は関数に与えられたすべての引数からなる配列を返します。


返り値についてです。複数の値を返すには、配列を使用します。



関数の名前を変数に代入した可変関数というものがあります。
※printやechoは関数ではないため呼び出すことはできません。



本記事は以下の書籍を参考にしています。