プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • PHP
  • 【PHP】「関数」(文字列操作関数など)、クラス
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【PHP】「関数」(文字列操作関数など)、クラス

05.04

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

書き方

1
2
3
4
function kansu($str){
  return $str . 'ですよ。';
}
echo kansu("太郎");

命名規則

PHPの関数名はキャメルケースでもスネークケースでもどちらでも構いません。よく見かけるのはキャメルケースですがそのプロジェクトのコーディング規則に合わせるようにしましょう。

  • キャメルケース(kansuCamel)
  • スネークケース(kansu_snake)

引数にnullを渡すとエラーになる。

phpの関数は引数にnullを渡すとエラーになってしまいます。対策するための二つのアプローチがあります。一応どちらも使うことは可能ですが、どちらも使った場合null許容型の意味がなくなるのでどちらかに統一するのが望ましいです。

デフォルト引数

下記のように引数にイコールで値を設定してあげると引数のデフォルト値を設定する事が可能です。

1
2
3
4
function 関数名($引数名 = デフォルト値)
{
  処理
}

null許容型

php7.1から導入されました。

1
2
3
function 関数名(?string $引数名) {
  処理
}

こちらは引数の数が足りないとエラーになります。

タイプヒンディング

引数にデータ型を指定します。データ型を指定しなかった場合はなんのデータ型でも渡せてしまいます。タイプヒンディングとしてデータ型を指定した場合は、指定したデータ型以外のデータ型の引数を渡した場合はエラーになります。

1
2
3
4
function 関数名(データ型 $引数名)
{
  処理
}

可変引数

引数名の前に「...」をつける事で任意の個数の引数を渡す事が可能です。

1
2
3
4
function 関数名(...$引数名)
{
  処理内容
}

戻り値の型を指定する(PHP7以降)

PHP7から関数名の後ろに戻り値の型を指定する事ができるようになりました。

1
2
3
4
function 関数名(): 戻り値の型
{
  処理内容
}

引数に関数を渡す(コールバック関数)

引数に関数を渡す事ができます。代表的な関数としてはarray_mapがあります。配列として渡された各値に対して任意の関数処理を実行して配列として結果を返す事が可能です。

1
2
$parameters = [値1,値2,値3];
$配列名 = array_map('任意の関数名', $parameters);

自作する

下記のようにcallableというデータ型を使用する事で関数を引数に渡す事が可能です。

1
2
3
4
function useCombine(callable $func){
  //コールバック関数を実行する。
  $func;
}

文字列操作関数

strlen

文字のバイト数を取得する事ができます。

1
2
3
4
5
6
7
8
$str = "こんにちは";
echo strlen($str); //15
 
echo("<br>");
echo("<br>");
 
$str2 = 1234;
echo strlen($str2); //4

注意点

日本語を扱う場合はバイト数が可変になるので注意です。一般的に今一番使われている文字コードのUTF-8であれば1文字あたり3バイト〜6バイトの間で変動します。

mb_strlen

文字数を取得する事ができます。mbというのはマルチバイトということを指しており日本語等のマルチバイト文字だったとしても1文字としてカウントしてくれるようになります。

1
2
3
4
5
6
7
8
9
10
11
echo("<br>");
echo("<br>");
 
$str = "こんにちは";
echo mb_strlen($str); //5
 
echo("<br>");
echo("<br>");
 
$str2 = 1234;
echo mb_strlen($str2); //4

str_replace

引数を3つ取り、文字列を置換する事が可能です。公式リファレンスを見ればわかりますが、引数の型はmixedとなっており数値でも文字列でもなんでも扱えるという意味になります。

1
echo str_replace("太郎","次郎","太郎さん、こんにちは"); //次郎さん、こんにちは

explode

特定の文字を区切りにして分割して配列に格納します。

1
2
$bunkatu = "文字列を、分割、しますよ。";
var_dump(explode('、',$bunkatu)); //array(3) { [0]=> string(12) "文字列を" [1]=> string(6) "分割" [2]=> string(15) "しますよ。" }

preg_match

第一引数に正規表現を指定して、第二引数に含まれる文字列から値を検索します。値が含まれる場合は1、含まれない場合は0が返ってきます。

1
echo preg_match('/テスト/','今日はテストです。'); //1

substr

第二引数で指定した文字以降を取得します。ただしマルチバイトには対応していないので注意です。

1
2
$str = 12345;
echo substr($str,2); //345

mb_substr

マルチバイトに対応した第二引数で指定した文字以降を取得します。

1
2
$str = "アイウエオ";
echo mb_substr($str,2); //ウエオ

クラス

クラスに入ると呼び方が変わる。

PHPの下記要素はクラス内に属すると呼び方が変わります。

変数、定数

プロパティという呼び方になります。

関数

メソッドという呼び方になります。

クラスの使い方

クラスの定義

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class クラス名{
 
  private $変数名 = 値;
 
  //コンストラクタ
  function __construct($変数名 = null){
    $this->変数名 = 値;
  }
 
  //メソッド
  public function メソッド名(){
    処理内容
  }
 
  //静的メソッド
  public static function メソッド名(){
    処理内容
  }
}

$this

クラス自身を指します。

通常のプロパティやメソッドを参照する。

newでインスタンス化した上でプロパティやメソッドを呼び出します。

1
2
3
$変数 = new クラス名;
$変数 -> プロパティ名;
$変数 -> メソッド名;

「->」をアロー演算子と呼びます。

静的(static)に呼び出す。

クラス内でstaticをつけたプロパティ等は静的に呼び出す事ができます。

1
2
クラス名::静的メソッド名
クラス名::静的プロパティ名

「::」をスコープ演算子と呼びます。

継承

子クラスでも親クラスのプロパティやメソッドを使う事ができます。クラスは単一継承になります。

1
2
3
class 子クラス extends 親クラス {
  処理内容
}

trait

クラスの継承と異なり、複数のトレイトを組み込む事ができるので柔軟に拡張する事が可能です。なお、呼び出し元と呼び出し先でどちらも同じメソッドを定義した場合は呼び出し先の方が優先して適用されることになります。

呼ばれる側

1
2
3
4
5
6
trait トレイト名{
 
  public function メソッド名(){
    処理内容
  }
}

使う側

トレイトで呼ばれる側のメソッドを使用する事ができます。

1
2
3
4
class クラス名{
  use トレイト名1;
  use トレイト名2;
}

スポンサーリンク
  • 2020 05.04
  • miyabisan2
  • コメントを書く
  • PHP
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2023 10.02

    【FuelPHP】概要

  2. 2020 05.04

    【PHP】外部のPHPファイルを使うには

  3. 2020 04.04

    【PHP】「リリースノート」、「php.ini」、「composer」、「セッション」、「クッキー」など

  4. 2020 05.04

    【PHP】基本的なフォーム処理

  5. 2020 05.05

    【PHP】「変数」、「定数」、「配列」、「連想配列」、「条件分岐」、「論理演算子」、「ファイル操作」

  6. 2023 10.02

    【PHP】デバッグ方法まとめ

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【JavaScript】非同期関数(「async」、「…

【PHP】外部のPHPファイルを使うには

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー