1
0

More than 3 years have passed since last update.

PHPの基本文法

Posted at

はじめに

PHPを学びたてのコテコテの初心者です。
間違ってる点などあれば、ご指摘いただければ幸いです。

print構文

qiita.php
<?php
print ("PHPを勉強中です!!");
?>

ダブルコーテーションを表示させたい時はエスケープシーケンスを使用する

qiita.php
<?php
print ("PHPを勉強中です!\"kirin\"");
?>

簡単なエスケープシーケンスのまとめ

エスケープシーケンス 効果
\n 改行
\r キャリッジリターン
\t タブ
\ \
\$
\" "
\' '

キャリッジリターンとは
カーソルを先頭に戻す制御文字

算術演算子

””で囲むと文字列と評価されるので注意

qiita.php
<?php
print (1+1);#2
?>

組み合わせて複雑な計算も可能

qiita.php
<?php
print ((100**3+12)*3);#3000036
?>

簡単な演算子のまとめ

記号 効果
+ 足し算
- 引き算
* 掛け算
** n乗
/ 割り算
% 剰余算

date

date ( string $format [, int $timestamp = time() ] ) : string
引数を2つもてる

画面が表示される度に時刻が変化
date functionを使用し、日時の取得ができるが表示まではできない

https://www.php.net/manual/ja/function.date.php

日付、曜日の表示

qiita.php
<?php
print (date('F/j/Y'));
#表示結果:August/27/2020
?>

dateの指定文字

記号 効果 使用例
Y (4桁表示)年 2020
y (2桁表示)年 20
m (2桁表示)月 08
M (英語表示)月 Aug
F (英語表示)月 August
n (0を消す)月
d 15
H (24時間表示)時間 15
h (12時間表示)時間 3
i 59
s 59
t 月の日数 31
D (3文字)曜日 Sat
w 曜日を数値化(0-6) 6

時間の表示も可能
日本時間を表示するためにはタイムゾーンの設定が必要

qiita.php
<?php
print (date('G時 i分 s秒'));
?>

タイムゾーンの設定は次のように行う

qiita.php
<?php
date_default_timezone_set('Asia/Tokyo');
print (date('G時 i分 s秒'));
?> 

文字列を連結

""が必要な文字列を.を用いることでつなぐことができる

qiita.php
<?php
date_default_timezone_set('Asia/Tokyo');
print ('現在の時刻:'.date('G時 i分 s秒'));
?> 

オブジェクト指向型

formatはメソッドと呼ばれ、取得した時間を整形している
DateTime()は様々な日付や時間のメソッドを持つオブジェクト

PHPには手続き型とオブジェクト指向型が混在している

qiita.php
<?php
date_default_timezone_set('Asia/Tokyo');
$today = new DateTime();
print ($today ->format('G時 i分 s秒'));
#表示結果:8時 12分 09秒 
?> 

timeスタンプ

1970年1月1日からの経過時間を返す

qiita.php
<?php
    print (time())
    ?>

strtotime

strings to time
文字列で指定したものをタイムスタンプに変換する

qiita.php
<?php
    print (date('n/j(D)')."\n");
    //    表示結果:8/27(Thu)
    print (date('n/j(D)',strtotime("+2day")));
    //    表示結果:8/29(Sat)
    ?>

変数

PHPの変数の特徴
* 変数名は$ではじめる
* 英語、日本語、数字で命名可能
* 記号、空白は使えない
* 先頭数字も不可
* 大文字小文字の区別される
* 基本的には小文字で書かれる
* ''があれば文字列として格納

qiita.php
<?php $sum = 100 + 200 + 300; ?>
    合計金額は:<?php print ($sum); ?>円です
#表示結果:合計金額は600円です
    税込み:<?php print ($sum*1.1); ?>円です
#表示結果:税込み660円です

while構文

  • 初期化処理
  • 繰り返す条件
  • 繰り返し処理
  • 更新処理
qiita.php
<?php
    $i =1;
    while ($i <= 10){
        print ($i."\n");
        $i += 1;
    }
    ?>

endwhileを使ってもかける

qiita.php
<?php
    $i =1;
    while ($i <= 10):
        print ($i."\n");
        $i += 1;
    endwhile;
    ?>

比較演算子

記号 効果
A < B AはBより小さい
A <= B AはB以下
A === B AとBは等しい
A !== B AとBは等しくない
!A Aではない

インクリメント・デクリメント

割り算、掛け算は1を掛けても、割っても値は変わらないためインクリメントのようなものは存在しない

記号 効果1 効果2
$i = $i + 1 $i += 1 $i ++
$i = $i - 1 $i -= 1 $i --

for構文

for(初期化処理; 繰り返し条件; 更新処理;){
繰り返したい処理;
}

qiita.php
<?php
    for ($i=1; $i<=10; $i++){
        print ($i."\n");
    }
    ?>

{}ではなくendforを使ってもかける

qiita.php
<?php
    for ($i=1; $i<=10; $i++):
        print ($i."\n");
    endfor;
    ?>

一年後までの日と曜日を出力

qiita.php
<?php
    for($i=0; $i<=365; $i++){
        print (date('Y/n/j(D)',strtotime("+".$i."day")));
        print "\n";
    }
    ?>

配列

array()はPHP4.5以前で使用されていた
配列を表示させるにはインデックスを指定する必要がある

曜日を日本語で出力させたい時

qiita.php
<?php
    $week_name = ["日","月","火","水","木","金","日"];
    print($week_name[date('w')]);
    ?>

連想配列

keyを指定することで配列の順序によらずリストから値を取り出せる

qiita.php
<?php
    $drink = ['お茶'=>'tea',
        "コーラ"=>'coke',
        "コーヒー"=>'coffee',
        "ワイン"=>'wine'];
    print ($drink["お茶"]);
    #tea
    ?>

foreach構文

配列専用の構文
各要素を繰り返し出力可能

qiita.php
<?php
    $drink = ['お茶'=>'tea',
        "コーラ"=>'coke',
        "コーヒー"=>'coffee',
        "ワイン"=>'wine'];

    foreach ($drink as $val){
        print ($val."\n");
    }
    ?>

出力結果

tea
coke
coffee
wine

インデックスも取り出したい場合

qiita.php
<?php
    $drink = ['お茶'=>'tea',
        "コーラ"=>'coke',
        "コーヒー"=>'coffee',
        "ワイン"=>'wine'];
    foreach ($drink as $japanese => $english){
        print ($japanese." : ".$english."\n");
    }
    ?>

出力結果

お茶 : tea
コーラ : coke
コーヒー : coffee
ワイン : wine

if構文

qiita.php
<?php
    date_default_timezone_set('Asia/Tokyo');
    if(12 <= date("G")){
        print ("ランチ食べられます");
    }
    else{
        print ("ディナータイムです");
        }
    ?>

文字列が空ならFalse,それ以外はTrue
数値が0ならFalse、それ以外はTrue

切り上げ、切り捨て、四捨五入

floorで切り捨て

qiita.php
<?php
    print (floor(10/4))
//    2
    ?>

ceilで切り上げ

qiita.php
<?php
    print (ceil(10/4))
//    3
    ?>

roundで四捨五入
引数が2つ目は小数点第何位まで持つか

qiita.php
<?php
    print (round(1/3,3))
//    0.333
    ?>

sprintf

桁数をそろえる事が可能

dは数値を示しているので文字列を入れた場合は0が出力される

qiita.php
<?php
    $date = sprintf("%04d年 %02d月 %02d日", 2020,8,27);
    print ($date);
//    2020年 08月 27日
    ?>

文字列はsを使う

qiita.php
<?php
    $date = sprintf("%04d年 %02d月 %02d日 %s", 2020,8,27,"木");
    print ($date);
//    2020年 08月 27日 木
    ?>
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0