【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の使い方を忘れてしまったら、この記事を思い出して下さい!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

LINEで送る
Pocket

書いた人

せき

せき

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

おすすめコンテンツ

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

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