Laravelをふんわり理解する。ためのPHPを理解する
はじめに
こちらの続編です。
あいかわらず、書けるようになることは目指しません。
フレームワークをわかっても、そもそもPHPわからないと本質がわからない。なんて思って学び始めます。
ふんわり読めるくらいを目指します。
今日はそもそもPHPを読むための基礎知識の整理編です。
PHPのコードを読んでとっつきにくかったことの愚痴
$<-これなに
変数に使うらしいです。勝手にletとかvarとかがあるのかと思ってました。が、違う、変数全部に$をつけるらしい。
代入?
=はわかる。。。
->とか=>これはなんなんだ。でもこっちの方が代入に見えますね。
なんとなくわかるんだけどわからない
Route::getこれなんだろう。
PHPのお勉強
phpの環境構築
は、省略します。
phpの実行環境がある状態から始めます。
$ which php
/usr/local/bin/php
インストールについては以下を参考にしてください。
では本題です。
たくさん使いそうな標準出力
PHPで標準出力するには、echoやprintです。
よく使う and このあとも出てくるものをまとめておきます。
echo "Hello, World!";
print "Hello, World!";
変数を出力することもできます。
$name = "John";
echo "Hello, $name!";
print "Hello, $name!";
文字列に変数を埋め込むこともできます。
$name = "John";
echo "Hello, {$name}!";
print "Hello, {$name}!";
変数
変数宣言
とにかく変数は$から始まる。
$name = "test";
変数を使う時も$をつける。
$name = "test";
echo $name; // 出力: test
入れ替えるときも$をつける。
$name = "test";
$name = "new name"; // 変数に新しい値を代入
echo $name; // 出力: new name
ひたすら$ね,,,,,,覚えます。
変数に代入
=は他の言語と同じ、右辺の値を左辺の変数に代入します。
$name = "test";
->は何者か
->はオブジェクトのプロパティとかメソッドにアクセスするために使用するらしいです。なるほど、、、ですが、矢印こそ代入感が否めない。
$user = new User();
$user->name = "John"; // プロパティにアクセス
$user->greet(); // メソッドにアクセス
じゃあ=>は?
=>は配列のキーと値を紐づけるために使用。矢印こそ代入感が否めない。(2回目)
$array = [
'name' => 'John',
'age' => 30,
];
型ってあるのか
PHPは動的型付け言語なので、基本的に型はない。
$name = "test"; // 文字列
$age = 30; // 数値
が、PHP 7あたりから、型宣言ができるようになったようです。へ〜。
クラスのプロパティ (PHP 7.4.0 以降)、クラス定数 (PHP 8.3.0 以降)
前回の記事で書きましたが、やっぱり動的型付け言語は難しいですね。
Laravelは配列を返すだけで勝手にJSONにしてくれます。
function getUser(): array {
return [
'name' => 'John',
'age' => 30,
];
}
配列
配列は、array()関数や短縮構文 [] を使用して作成できます。
// 配列の作成
$array1 = array('apple', 'banana', 'cherry');
$array2 = ['apple', 'banana', 'cherry'];
// アクセス
echo $array1[0];
文字列キーの配列もありました。
// 文字列キーの配列
$assocArray = [
'name' => 'John',
'age' => 30,
];
echo $assocArray['name']; // 出力: John
この辺のことですね。
クラスとオブジェクト
for文に行くか、こっちに行くか迷いましたが、まずはこのテーマ。
クラス
これはなじみがありますね。
class foo
{
function do_foo()
{
echo "foo を実行します。";
}
}
インスタンス化
$foo = new foo();
$foo->do_foo(); // 出力: foo を実行します。
でた、 ->。
コンストラクタ
こんな感じ。
class User {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$user = new User("John");
echo $user->name; // 出力: John
制御構造
if文
if文はこんな感じ。これはわかりやすいですね。
if ($age > 18) {
echo "成人です。";
} elseif ($age == 18) {
echo "ちょうど18歳です。";
} else {
echo "未成年です。";
}
for文
for文も他の言語と似ています。
for ($i = 0; $i < 10; $i++) {
echo $i;
}
while文
while文も同様です。
$i = 0;
while ($i < 10) {
echo $i;
$i++;
}
急に、最初に触れたRoute::getって何?
この::ってなんでしょう。
以下らしい。
トークンのひとつです。 定数 static プロパティ、 クラスの static メソッド、 や親クラスのそれにアクセスできます。
たぶんここが重要そう。
クラスの静的メソッドやプロパティにアクセスするための演算子らしいです。
class MyClass {
public static function myStaticMethod() {
echo "Hello, World!";
}
}
MyClass::myStaticMethod(); // 出力: Hello, World!
おわりに
基礎構文をもろもろ学びました。
ちょーーーっとだけ、他の言語との違いがありとっつきにくい部分もありますね。
でも新しいことを学んでいて、ちょっとだけ楽しい。
もうすこしPHPという言語自体を深掘りしつつ、Laravelの理解も深めたいと思います。
AIに聞けば多分一瞬でまとめてくれる内容ですが、楽しく新しいことを学んでみました。
誰かのご参考になれば幸いです。
以上です。
お読みいただきありがとうございました。