2020年04月27日

PHP ハンズオン

PHP ハンズオン
<!DOCTYPE html>
<html lang="ja">

<head>
<meta charset="utf-8">
<title>title</title>
</head>

<body>
<pre>
<?php

$val = 123.45678;

// フォーマット済みの文字列を出力
printf("%s %02d %07.2f表示\n", '文字列', 5, $val);
// 出力:文字列 05 0123.46表示

// 数値
print("切り上げ:" . ceil($val) . "\n");
print("切り下げ:" . floor($val) . "\n");
print("四捨五入:" . round($val) . "\n");

print("文字列を配列へ分解\n");
$source = 'apple,banana,cherry';
$array = explode(',', $source);
var_dump($array);
print("基数変換\n");
$base16val = "FF";
print("16進数" . $base16val . "->" . intval($base16val, 16) . "\n");

print("配列とfor文\n");
$myAry = [500, 578, 325, 987556];
for ($i = 0; $i < count($myAry); $i++) {
print($myAry[$i] . "\n");
}

print("連想配列とforeach文\n");
$myDic = [
'あ' => '雨', 'い' => '犬', 'う' => '海'
];
foreach ($myDic as $k => $v) {
print($k . ':' . $v . "\n");
}

?>

</pre>
</body>

</html>
タグ:PHP
posted by Hiro at 23:36| Comment(0) | プログラム

2020年04月15日

JavaScriptによるスタイルシート切り替え

JavaScriptによるスタイルシート切り替え例
this.classList.toggleにより、指定したクラスのon/offを切り替える。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>title</title>
<link rel="stylesheet" href="mystylesheet.css">
</head>
<body>
<div id="mark">クリックしてね</div>
<script src="script/myscript.js" charaset ="utf-8"></script>
</body>
</html>
/* mystylesheet.css */

.mark_yellow{
background-color: yellow;
color: #ca0000;
}
/* script/myscript.js */

document.addEventListener('DOMContentLoaded', function() {
document.getElementById('mark').addEventListener('click', function(){
this.classList.toggle('mark_yellow');
});
});
タグ:CSS JavaScript
posted by Hiro at 22:53| Comment(0) | プログラム

2020年04月14日

JavaScript プライベートメンバとアクセサーメソッドの実装例

definePropertyを使わない例
// プライベートメンバの定義例
'use strict';

// 点数を保持する
var Score = function(){
// プライベートプロパティ
var _val; // this._valではない!

var _chkVal = function(val){
return (typeof val === 'number' && 0 <= val && val <= 100);
}
// プライベートメンバにアクセスするためのメソッド(特権メソッドと呼ぶ)。
// this.を付けて記述する。
this.setVal = function(arg){
if(_chkVal(arg)){_val = arg;}
}
this.getVal = function(){
return _val;
}
}

var scr1 = new Score();
scr1._val = 50; // プロパティは追加できるが、getVal()からは参照しない。
scr1.setVal(99);
console.log(scr1.getVal());
definePropertyによるアクセサーメソッド
// definePropertyによるアクセサーメソッドの例
'use strict';

// 点数を保持する
var Score = function(){
// プライベート変数
var _val;

var _chkVal = function(val){
return (typeof val === 'number' && 0 <= val && val <= 100);
}
Object.defineProperty(
this,
'val',
{
get: function(){
return _val;
},
set: function(arg){
if(_chkVal(arg)){
_val = arg;
}
},
}
);
}

var scr1 = new Score();
scr1.val = 88;
console.log(scr1.val);

var scr2 = new Score();
scr2.val = -50; // チェックで弾かれる
console.log(scr2.val); // undefined
definePropertiesによるアクセサーメソッド
// definePropertiesによるアクセサーメソッドの例
'use strict';

// 点数を保持する
var Score = function(){
// プライベート変数
var _val;

var _chkVal = function(val){
return (typeof val === 'number' && 0 <= val && val <= 100);
}
Object.defineProperties(
this, {
val: {
get: function(){
return _val;
},
set: function(arg){
if(_chkVal(arg)){
_val = arg;
}
},
},
// 2つめ以降のアクセサーを記述する。
}
);
}

var scr1 = new Score();
scr1.val = 77;
console.log(scr1.val);

タグ:JavaScript
posted by Hiro at 22:40| Comment(2) | プログラム