PHP初心者が知っておくべき6つの関数

この記事はSMASHING HUBに掲載された 6 Commodious PHP Functions for Beginners の内容を日本語訳したものです。

PHPは公式リファレンスページで5000以上の主要な関数を用意しています。その膨大なリファレンスページの中には、開発者になったばかりの人が見ておくべきヒントやコツがたくさんつまっています。

その中から重要だと思われる部分を抜き出して記事にしています。

1, わかりにくい === 演算子

PHPは強力かつスマートな言語です。また、変数型が緩く型付けされた言語してよく知られています。ただ、そのせいか、多くの人が == と === の使い方について混乱しているのをリファレンスやブログのコメントから気づきました。これらはどう違うのでしょうか。

PHPは ‘431’を文字型として認識しますが、これをそのまま四則演算で使用することも出来ます。
このことはとても理にかなっています。 ただ問題が起きるのはこの数字が0の場合です。
0という数字は、0やfalseの意味で使われます。このことにより少し不思議で複雑なことがおきます。
そこで、=== を使用すると簡単にどちらの意味で使われているのか判断することが出来ます。

他の似たような言語では、== は変数を比較することに使われてることが多いですが、数字の0として比較したいとき、PHPではそれを数字の0として認識せずにfalseとして認識するかもしれません。
こういうときこそ、まさに === を使うべきタイミングです。
=== は変数の値を比べるだけじゃなく、型まで調べます。
この演算子は数字の0かどうかを確定させたいときに使います。

使い方:

$myVar = false;

// true
if($myVar == 0) {}

// false
if($myVar === 0) {}

2, アプリケーションの中でグラバターを使う

グラバターとは?

これは読者を手助けし、共有する価値のあるものだと思った抜粋のうちの1つです。WordPressの絶大な人気も、グラバターの使用によってもらたされたものです。グラバターは綺麗はAPIを提供し、簡単に統合して使うことが出来ます。

/*
-myEmail- Email address to show gravatar for
-gSize - size of gravatar
-url - URL of default gravatar to use
-gRating - rating of Gravatar(G, PG, R, X)
*/
function myGravatar($myEmail, $gSize, $url, $gRating)
{
    echo '<img src="https://www.gravatar.com/avatar.php?gravatar_id='.md5($myEmail). '&default='.$url.'&size='.$gSize.'&rating='.$gRating.'" alt="" width="'.$gSize.'px" height="'.$gSize.'px" />';
}

一度、上記の関数を追加すれば、グラバターの画像を表示させたい部分のどこでも呼び出すことが出来ます。

myGravatar($myEmail, $gSize, $url, $gRating);

3, Empty()

他の言語ではほとんど使われることのない手軽なPHP関数の1つがempty()関数です。
この関数は使われる文脈により、違う動きをします。
この関数が実際に何をしているかは、変数が定義されていない場合と、何かの値を持っているときを調べてみるとわかります。
また、null,false,数字の0を調べて、返り値であるtrueかfalseを調べます。

if(!empty($_GET['myVal'])){

$myVar = $_GET['myVal'];

}else{

$myVar = 'SmashingHub';

}

// Or something like below does the same job

$myVar = 'SmashingHub';

if(!empty($_GET['myVal'])){

$myVar = $_GET['myVal'];

}

4, Function_exists()

この関数は、特定の名前の関数が存在しないかどうかをチェックします。
WordPressのようなCMSを触るとき、多くのプラグインとたくさんの関数が統合されています。実際に試してみましょう。

私のブログテーマを変更したとき、問題が発生しました。サイドバーにいくつかの未定義の関数エラーが発生しました。
いくつかのソースコードをみて、既に定義されている同じ関数を発見しました。

テーマ開発者は、下のサンプルのように、function_exists()を使用して既にインストールしているプラグインの中に同名の関数がないかどうか調べるべきです。

悪い例:

get_flickrrss();

良い例:

if (function_exists('get_flickrrss')) {

get_flickrrss();

}

5, 参照

参照は、返り値を持たず、グローバル変数を設置することなく関数に変数を渡すことが出来ます。
この方法は、元々の変数を変えることも出来ます。関数の始めに、「&」を使います。

例:

function lowercase(&$myString){

$myString= strtoupper($myString);

}

$myName = 'smashinghub';

lowercase($myName);

echo $myName;  // returns SMASHINGHUB

上記の例では、strtoupper()関数を呼び出し、$myNameに値を渡して、実際の文字列を変更しています。

6, Similar_text

PHPは類似の2つの文字列をチェックするsimilar_text機能を持っています。

similar_text($myVar1, $myVar2, $sPercent);
// どのくらい似ているかをパーセンテージで返します

この記事はSMASHING HUBに掲載された 6 Commodious PHP Functions for Beginners の内容を日本語訳したものです。