【PHP入門】newの使い方まとめ

こんにちは!フリーエンジニアのせきです。

PHPでは、newというキーワードを使ってクラスを初期化します。

この記事では、

・newについて知りたい
・newの使い方について知りたい

という基本的な内容から、

・変数を初期化する方法を知りたい
・時刻を初期化する方法が知りたい
・DBを初期化する方法が知りたい

といった応用的な内容に関しても解説していきます。

今回はそんなnewの使い方について、わかりやすく解説します!

newとは

あるクラスのオブジェクトを生成し初期化するには、newを使用します。

このように記述すると、NewClassのオブジェクトが生成され、NewClassのコンストラクタが実行されます。

$instanceには、初期化されたNewClassのオブジェクトが代入されます。

クラスを初期化する

ここでは、newを使用してクラスを初期化する方法を解説します。

まずは、初期化するPersonクラスを定義します。

Personクラスはnameプロパティを持ち、nameの値はオブジェクト生成時に設定されるようになっています。showNameメソッドでは、そのnameの値を表示します。

次にnewを使用して、Personクラスのオブジェクトを生成します。

「new Person(‘Tanaka’)」で、nameプロパティに’Tanaka’を持つPersonクラスのオブジェクトが生成され、$person1に代入しています。

$person1のshowNameメソッドを呼び出すと、「Tanaka」が表示されます。

同様に、「new Person(‘Suzuki’)」でPersonクラスのオブジェクトを生成し、showNameメソッドでは「Suzuki」が表示されています。

時刻を初期化する

newを使用して、DateTimeクラスのオブジェクトを生成することで、日時を取得することができます。

「new DateTime()」では、引数なしでDateTimeクラスを初期化しています。

その場合は、現在日時が設定されたDateTimeオブジェクトが作成されます。(実行結果は、2017/5/31に実行したものです。)

「new DateTime(‘2017-04-01’)」のように、DateTimeクラスに設定する日時を引数に指定して初期化することもできます。

DateTimeについては、以下の記事で詳しく解説しています。

変数を初期化する

Javaなどのオブジェクト指向型言語は、変数を初期化するのにnewを使用します。

しかし、PHPはnewを使用しなくても初期化することができます

「$array = [0, 1, 2]」で、$arrayには配列が代入されていますが、「$array = [3, 4]」で、$arrayはnewを使わずに違う配列で初期化されています。

データベースを初期化する

mysqliクラスのオブジェクトを使用し、データベース操作を行うことができます。

データベースへの接続、SQLの実行、切断までのサンプルです。

「new mysqli(‘localhost’, ‘root’, ‘passwd’, ‘dbname’)」では、「データベースサーバ」「ユーザ名」「パスワード」「データベース名」などの接続に必要な情報を引数に指定して、mysqliクラスを初期化します。

それを代入した変数 $mysqli で、データベース操作を行います。

「$mysqli->query(SQL文)」で、SQLが実行されます。
「$mysqli->close()」で、データベースから切断されます。

まとめ

今回はnewの使い方について解説しました。

newはオブジェクトの初期化に必要な非常に重要なキーワードです。

newの使い方を忘れてしまったら、この記事を思い出して下さい!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

せき

せき

フリーランスでWebシステム開発やゲーム開発をしています。
読者の方にプログラミングの面白さをお伝えしたいです。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説