◆20200901 ヒアドキュメント 文字列連結演算子 配列リテラル 乱数
本日の授業内容
要約
○ヒアドキュメントについて
例)
$text1 = << < EOT
ヒアドキュメントの文字列
ヒアドキュメントの文字列
ヒアドキュメントの文字列
EOT;
この記述(赤字部分)をすると、ヒアドキュメント内の特殊文字と変数は展開される。
(通常は” ”で囲わないと展開されない)
長い文字列を変数に代入する際にもよく使われる。
○データ型の確認 var_dump(変数);
・データ型一覧
string→文字列型(” ”、’ ’で囲われた値)
int→整数
float, double→小数
boolean→真偽値
array→配列
null→変数の値なし
〇文字列連結演算子
JSでは+を使って文字列をつなげていたが
PHPでは . でつなげる。
〇配列リテラル
・配列の作成の仕方
$変数名[値,値,値, ];
○echoによるブラウザ出力
○乱数を扱う関数 mt_rand( )
mt_rand(5, 15);
第一引数:乱数で表示させる最小値
第二引数:乱数で表示させる最大値
〇PHPの続き
ブラウザで表示する方法
をブラウザのURLに入力
〇ヒアドキュメントの続き
<? php
/*
PHP7.2までは終端IDをインデントなしで記述しないとエラー
PHP7.3から終端IDをインデントありで記述OK
終端IDのインデント位置を文字列の行頭として扱う
*/
$text1 = << < EOT
ヒアドキュメントの文字列
ヒアドキュメントの文字列
ヒアドキュメントの文字列
EOT;
// ■ 終端IDのインデントより前に文字列があるとエラー
// $text1 = <<< EOT
// ヒアドキュメントの文字列
// ヒアドキュメントの文字列
// ヒアドキュメントの文字列
// EOT;
// date関数の復習
$todate=date('Y年m月d日です');
echo($todate);
// $変数名=date('Y/m/d')
// ↑これで今日の日付になる
?>
〇データ型・var dump
・データ型一覧
string→文字列型(” ”、’ ’で囲われた値)
int→整数
float, double→小数
boolean→真偽値
array→配列
null→変数の値なし
☆var_dump(変数)を入力することでブラウザでデータ型を表示させることができる
<? php
$val = 'おいしい水';//string(文字列型)
echo '<p>';
var_dump($val);
// ブラウザでstring(15)→()中はバイト数
// UTF8は全角文字1文字で3バイト(時々2バイトもある)
echo '<br>';
echo $val;
echo '</p>';
$val = 100;//int(整数)
echo '<p>';
var_dump($val);
echo '<br>';
echo $val;
echo '</p>';
echo '<p>';
var_dump($val);
echo '<br>';
echo $val;
echo '</p>';
$val = true;//boolean(真偽値)
echo '<p>';
var_dump($val);
echo '<br>';
echo $val;
// echoで表示させるとブラウザでは文字列の数字の「1」が出る
// falseにするとechoでは何も表示されない。
// var_dumpで表示させると変数内の値が正確に表示される
// 変数内の値を正確に確認するときはvar_dump関数で確認すること!
echo '</p>';
?>
〇文字列連結演算子
<? php
$name = '田中';
echo "<h1>一回目の出力</h1>";
echo "こんにちは"."$name!!!";
echo "<h1>二回目の出力</h1>";
echo $name. 200;
// 型の違う値を文字連結する場合は
// データ型を文字列型に揃えてから連結
// 半角スペースと.を使う(+じゃないよ)
// 数字の前は半角スペースを使わないと小数点として扱われてエラーになる
?>
・配列の作成
$変数名[値, 値, 値, ・・・];
※arrayを用いる場合
$変数名 = array(値, 値, ・・・)
()を使う
※ブラケットで配列作成
$変数名[部屋番号] = 値;
・preタグについて
整形済みテキスト。
コード上に記述したものをそのままブラウザ上に表示させる
< h1 > 配列</h1 >
<? php
$fruits = [
'いちご',
'みかん',
'りんご'
];
$shikoku = array(
'徳島県'
);
$northKanto = '茨城県';
$northKanto = '栃木県';
$northKanto = '群馬県';
// にすると勝手にこの場合0~2まで番号を順にふってくれる
// 繰り返し処理と合わせて使うことが多い
$hundred = [100, 100.0, '100', '百'];
// JSやPHPは配列内に異なるデータ型の値を持つことができる
// JAVA等は異なるデータ型はNG
echo '<h2>1回目の出力</h2>';
echo '<pre>';
var_dump($fruits);
echo '</pre>';
echo '<h2>2回目の出力</h2>';
echo '<pre>';
var_dump($shikoku);
echo '</pre>';
echo '<h2>3回目の出力</h2>';
echo '<pre>';
var_dump($northKanto);
echo '</pre>';
echo $northKanto[1];
echo '<h2>4回目の出力</h2>';
echo '<pre>';
var_dump($hundred);
echo '</pre>';
?>
〇配列リテラルの応用
<? php
$fruits = ['いちご', 'みかん', 'りんご'];
echo '<h2>1回目の出力</h2>';
echo '<pre>';
var_dump($fruits);
echo '</pre>';
echo '<h2>2回目の出力</h2>';
echo $fruits[0];
echo '<br>';
echo $fruits[1];
echo '<br>';
echo $fruits[2];
echo '<br>';
echo count($fruits);
// count・・JSでいうlengthと同じ働き
// 部屋数を調べるときに使用する
echo '<h2>3回目の出力</h2>';
$fruits[1] = 'メロン';
echo '<pre>';
var_dump($fruits);
echo '</pre>';
echo $fruits[0];
echo '<br>';
echo $fruits[1];
echo '<br>';
echo $fruits[2];
echo '<h2>4回目の出力</h2>';
$fruits[3] = 'バナナ';
echo '<pre>';
var_dump($fruits);
echo '</pre>';
echo $fruits[0];
echo '<br>';
echo $fruits[1];
echo '<br>';
echo $fruits[2];
echo '<br>';
echo $fruits[3];
echo '<br>';
echo count($fruits);
echo '<h2>5回目の出力</h2>';
echo '<pre>';
var_dump($fruits);
echo '</pre>';
echo $fruits[0];
echo '<br>';
echo $fruits[1];
echo '<br>';
echo $fruits[2];
echo '<br>';
echo $fruits[3];
echo '<br>';
echo $fruits[4];
echo '<br>';
echo count($fruits);
// 問題
// for文で配列内の値を出力
// 果物の名前の後に「さん」をつけること
$fruits = ['いちご', 'みかん', 'りんご'];
echo '<br>';
for ($i = 0; $i < count($fruits); ++$i)
// for文の作り方は同じ
// PHPにおける変数iは$をつけてあげること
// 変数名.length=count(変数名)
echo $fruits[$i]. 'さん<br>';
echo count($fruits);
?>
〇echo文によるタグ出力
< h1 > echo文によるタグ出力</ >
<? php
$src = 'img/b002.jpg'; //src属性用変数
$alt = 'ねこにゃん'; //alt属性用変数
echo '<p>';
echo '<img src="'.$src. '" alt="'.$alt. '">';
echo '</p>';
$srcList = [
'img/b001.jpg',
'img/b002.jpg',
'img/b003.jpg',
'img/b004.jpg'
];
$altList = [
'DPH',
'ねこにゃん',
'もんちゃん',
'部屋'
];
// $number = "2";
// echo '<p>';
// echo '<img src="' . $srcList[$number] . '" alt="' . $altList[$number] . '">';
// echo '</p>';
// 配列内の情報($srcList、$altList)を全て使って
// for文を使って4枚の画像を表示させること
for ($i = 0; $i < count({
echo '<img src="' .$srcList[$i]. '" alt="' .$altList[$i]. '">';
};
// for文の作り方をよく復習しておくこと
?>
〇乱数を扱う関数
< h1 > 乱数生成</h1 >
<? php
// mt_rand(void):int
// voidは空・虚の意味
// 引数部分「void」の場合は引数なしで呼出し
// 戻り値部分「void」の場合は戻り値なし
echo '<h2>1回目の出力</h2>';
$rand1 = mt_rand();
echo '<p>'.$rand1. '</p>';
echo '<p>'.mt_getrandmax(). '</p>';
echo '<h2>2回目の出力</h2>';
$rand2 = mt_rand(5, 15);
// mt_rand(int $min,int $max ):int
// ↑の翻訳:関数名(データ型 説明用の名前,データ型 説明用の名前):戻り値の型
// 引数の説明は「パラメーター」に記載
// ここで説明用の名前を使って
echo '<p>'.$rand2. '</p>';
?>
【その他復習】aosプラグインについて
・作業手順
1、読み込み・初期化の記述(CDN読み込み形式)
< head >
...
< !--CSS読み込み -->
</head>
<body>
...
<!-- JS読み込み -->
<!-- 初期化する -->
<script>
AOS.init();
→ここに詳細設定の記述をすることも可能
例))
AOS.init({
offset: 120,
delay: 0,
duration: 400,
easing: 'ease',
once: false,
mirror: false,
anchorPlacement: 'top-bottom',
});
</script>
</body>
2、HTMLのアニメーションをさせたい各タグに記述
<!-- フェードアップ -->
<div data-aos="fade-up"></div>
<!-- 回転 -->
<div data-aos="flip-left"></div>
<!-- ズーム -->
<div data-aos="zoom-in"></div>
これでふつうは動くようになるはずだが・・・・。