2015年10月31日

PHP 外部ファイルの関数の呼び出し その2

«
»

Pocket

前回は「関数を他のファイル(プログラム)から使うこと」について
その1として書いていきました。ただし、そこで紹介したやりかたは
非効率なものでしたので、今回は効率的な書き方を紹介したいと思います。
 
そのためには「関数を外部ファイル化する」という方法を採用します。
 
PHP 関数 外部ファイル
 
つまり、以下の様な関数だけが記述されているPHPプログラムを作成します。

<?php

function return_word($data){ 
	if($data == 1){ 
		return "a"; 
	}else if($data == 2){ 
		return "b";
	}else{ 
		return "c";
	}	
}//ここで関数終了


sample_funtion.phpの実行結果

PHP 関数 外部ファイル 実行結果

解説

関数だけを定義(記述した)sample_function.phpを実行しても
何も表示されませんでした。それもそのはずで、1回も echo などの出力命令が
記述されていない
からです。
 
しかし、ここまでで、関数を外部ファイル化することに成功しました。
外部ファイル化とは、別のファイルに記述すること、です。

外部ファイルの呼び出し

関数を外部ファイル化した次は、外部ファイルに記述した関数を使う(これを呼び出すという)
プログラムを学んでいきましょう。
 
今、以下の様な function4.php があるとします。
 


<?php

$a = 2;
$b = 1;
$c = $a - $b * $a; 

echo return_word($a); //sample_function.phpの関数を使いたいと思ってる
echo "<br>"; //改行

echo return_word($b); 

echo "<br>"; //改行

echo return_word($c); 

?>

 
このプログラムの実行結果はエラーとなります。
 
PHP エラー  Fatal error: Call to undefined function
 
function4.phpではreturn_wordという関数が未定義のため、エラーとなります。
そこで、sample_function.phpに定義したreturn_word関数を使えるようにしたいと
思います。
 
PHP require
 

require “利用したい外部ファイル名.php”;

と最初に記述することで、function4.phpから、sample_function.phpに
記述されている関数を呼び出す(利用する)ことができます

requireが要求する、という英単語なので、わかりやすいと思います。
修正後のfunction4.phpは以下の様になります。
 


<?php
require "sample_function.php"; //sample_function.phpのプログラムを使うよ

$a = 2;
$b = 1;
$c = $a - $b * $a; 

echo return_word($a); //sample_function.phpの関数を使いたいと思ってる
echo "<br>"; //改行

echo return_word($b); 

echo "<br>"; //改行

echo return_word($c); 

?>

修正後のfunction4.phpの実行結果

PHP require 関数

解説

今度はエラーにならずに結果が表示出来ました。
 
function4.phpにはreturn_wordが定義されていませんが、
requireで要求したsample_function.phpには
return_word関数が定義されていますので、自動的に
sample_function.phpのreturn_word関数を利用してくれます

 

そもそも何のために外部ファイル化するのか?

最後に、なぜ関数を外部ファイル化するのか?という原点に戻ると、
1回作成した関数を、他のファイルでも使いたい、と思った時、
その関数をいちいちコピペするのは非効率です。
例:プログラムの行数が長くなります。
 
そこで、関数を外部ファイル化して、requireを書くことで
呼び出し可能にしておけば、プログラムの行数を増やさなくても
やりたいことが実現できます

 
このように、同じプログラムを何度も書かないということが
システムエンジニアとしての仕事の効率を上げていくことにつながります。

まとめ

・関数だけを記述したPHPプログラムを作成することができる
・requireを使うことで外部ファイルを呼び出すことができる
・以上によって外部ファイルの関数を利用することができる
・同じプログラムを書かないようにすることが効率化に繋がる

【関連する記事】