スタートページ>
Javascript>
React
PHPの概要
←文法の基本(1)
←文法の基本(2)PHPの文法
→文法の基本(3)
PHPは、膨大な文法体系になっています。
参照: php.net「言語リファレンス」
https://www.php.net/manual/ja/langref.php
また、豊富な公開ライブラリがあります。
参照: アトオシ「PHPのおすすめライブラリ5選を一覧紹介!インストール方法も解説」
https://itpropartners.com/blog/525/
ここでは、paiza.io 環境で、簡単なPHPプログラムを作成するための基本的な文法に限定します。
PHPでJavaScriptと同じような処理をする場合、PHPの文法はJavaScriptとほぼ同じです。
変数名は、「$変数 = 10;」のように先頭に $ を付けます。
JavaScript での const にように定数を宣言するには、二つの形式があります。
const 定数 = 3,14; // $を付けない
define("定数". 3.14);
JavaScript と同じ
$配列 = ["A", "B", "C"];
$配列 = array("A", "B", "C");
$配列[0] は "A"
配列の長さは。$配列.length ではなく、couunt($配列)を用います。これは連想配列でも同じです。
JavaScript と同じ
$連想配列 = array(
"イヌ" => "dog".
"ネコ" => "cat"
}
$連想配列["イヌ"] は "dog"
JavaScript と同じ
+, -, *, /, %
==. ===. !=. !==, >, >=. <. <=. <>
&&. ||. !
次の制御構造は。JavaScript と同じ文法です。break や continue も使えます。
形式は、JavaScript とほぼ同じです。関数名には $ を付けません。
引数なし。returnなし<?php function 関数(){ echo "こんにちは"; } 関数(); ?> |
引数あり。returnなし<?php function 関数($引数){ echo $引数; } 関数("こんにちは"); ?> |
引数なし。returnあり<?php function 関数(){ $文字列 = "こんにちは"; return $文字列; } $戻り値 = 関数(); echo $戻り値; ?> |
引数あり。returnあり<?php function 関数 ($引数) { $文字列 = "こんにちは $引数 さん"; return $文字列; } $戻り値 = 関数("田中"); echo $戻り値; ?> |
<?php function 関数 ($配列引数) { foreach($配列引数 as $要素) { echo $要素."<br/>"; } } $配列 = array('A','B','C'); 関数($配列); ?>
<?php function 関数(){ return "こんにちは"; } $変数 = 関数(); echo $変数; ?> |
<?php function 関数($引数){ echo $引数; } $変数 = 関数("こんばんは"); echo $変数; ?> |
ここまでの例は、関数を定義した <?php ~ ?> 内部からの呼出しでしたが、他の<?php ~ ?> から呼び出すこともできます。
<?php function 関数(){ return"こんにちは"; } ?> <?php echo 関数(); ?> |
<?php function 関数($引数){ echo $引数; } ?> <?php echo 関数("こんばんは"); ?> |
上の2つを組み合わせることもできます。
<?php function 関数($引数){ echo $引数; } ?> <?php $挨拶 = "こんばんは"; $変数 = 関数($挨拶); echo $変数; ?>
この間が、PHPのプログラムであることを示します。
一つのファイルに複数の <?php ~ ?> があってもかまいません。
<?php echo "<p>PHPからの出力(前)</p>" ?> <p>HTMLからの出力</p> <?php echo "<p>PHPからの出力(後)</p>" ?>
標準出力域に 文字列 を表示します。この 文字列 は、以下のように編集できます。
<p>文字列<p> のように、HTMLタグを付加できます。
echo の対象となるのはスカラー要素(の並び)で、配列を直接に扱うことはできません。後述の vprintf / vsprintf を用いるか for や forEach 内で記述することになります。
変数がスカラーか配列かを調べるには is_array($変数)を用います。配列(連想配列を含む)なら true, スカラーなら false になります。
<?php
$名前 = "田中";
echo "こんにちは”. $名前 . "さん"; // こんにちは田中さん
?>
<?php $名前 = "田中"; $文字列 = "こんにちは"; $文字列 .= $名前; $文字列 .= "さん"; echo $文字列; ?>
<?php $名前 = "田中"; $敬称 = "さん"; echo "こんにちは{$名前}{$敬称}"; ?>
JavaScript PHP 10 + 20 30 30 10 + "20" "1020" 30 "10" + "20" "1020" 30
echoは文でprintは式ですが、echo と同じような出力命令で、通常は echo を用いればよいので、ここでは省略します。
printf は、指定したフォーマットで文字列を生成して表示する関数です。
まず、単純な例を示します。
<?php $変数1 = "ミカン"; // 文字列 $変数2 = 50; // 10進整数 $フォーマット = "%sの値段は%d円です。"; printf($フォーマット, $変数1, $変数2); // 「ミカンの値段は50円です。」と表示されます。 ?>
printf と同様ですが、printf が直接表示するのに対して、printf は文字列を生成します。それを表示するには、echo を用います。
●printf printf($フォーマット, $変数1, $変数2); ●sprintf $生成文字列 = sprintf($フォーマット, $変数1, $変数2); echo $生成文字列;
それぞれ、printf, sprintf の変数を配列で与える機能です。
<?php $配列 = ["ミカン", 50]; // ミカンは%s、50は%d に対応 $フォーマット = "%sの値段は%d円です。"; vprintf($フォーマット, $配列); ?>
<?php echo sprintf( '%06d', 1234).'<br>'; // 001234 echo sprintf( '%05d', 1234).'<br>'; // 01234 echo sprintf( '%04d', 1234).'<br>'; // 1234 echo sprintf( '%03d', 1234).'<br>'; // 1234 実桁数が優先される echo sprintf( '%06d', -1234).'<br>'; // -01234 echo sprintf( '%05d', -1234).'<br>'; // -1234 echo sprintf( '%04d', -1234).'<br>'; // -1234 echo sprintf( '%03d', -1234).'<br>'; // -1234 ?>
echo sprintf( '%6s', "abcd").'<br>'; とすれば、右側に空白が入ります。
<?php echo sprintf( '%-07d', 1234).'*<br>'; // 1234 * echo sprintf( '%-06d', 1234).'*<br>'; // 1234 * echo sprintf( '%-05d', 1234).'*<br>'; // 1234 * echo sprintf( '%-04d', 1234).'*<br>'; // 1234* echo sprintf( '%-07d', -1234).'*<br>'; // -1234 * echo sprintf( '%-06d', -1234).'*<br>'; // -1234 * echo sprintf( '%-05d', -1234).'*<br>'; // -1234* ?>
echo sprintf( '%-6s', "abcd").'<br>'; とすれば、左側に空白が入ります。
<?php echo sprintf( '%6.2f', 12.345).'<br>'; // 12.35 echo sprintf( '%.2f', 12.345).'<br>'; // 12.35 echo sprintf( '%.2f', 12.3).'<br>'; // 12.30 echo sprintf( '%.2f', 0.123).'<br>'; // 0.12 echo sprintf( '%.2f', 0.00123).'<br>'; // 0.00 echo sprintf( '%.2f', 0).'<br>'; // 0.00 echo sprintf( '%.2f', -0.123).'<br>'; // -0.12 ?>
ヒアドキュメントは、改行やスペースなどを含めた文字列をそのままの状態でソースコードの中に埋め込むために使われる手法です。
<<<範囲 ~ 範囲; とは、囲まれた内部をヒアドキュメントとするという意味です。(「範囲」ぬは EOF, EOM などを使うのが一般的です。
<?php echo "PHPからの出力"; echo <<<範囲 <p>範囲からの出力</p> 範囲; ?>
<?php echo "PHPからの出力"; $文字列 = <<<範囲 <p>範囲からの出力</p> 範囲; echo $文字列 ?>
非常に多数の組込関数があります。
参照 php「関数リファレンス」https://www.php.net/manual/ja/funcref.php
数学関数(Math 関数)https://www.php.net/manual/ja/ref.math.php
文字列関数(String 関数)https://www.php.net/manual/ja/ref.strings.php
画像関数(GD および Image 関数)https://www.php.net/manual/ja/ref.image.php
数値や文字列の加工分野では、JavaScript の関数機能をほぼカバーしていますが、関数名や機能などに違いがあり、個別に調べる必要があります。
いくつかの例を掲げます。