2023年3月14日 (火)
→Webアプリケーション向けの機能: PHPは、Webアプリケーションの開発に広く使用されているプログラミング言語の1つです。 以下は、PHPのWebアプリケーション開発に役立つ機能のいくつかです。 #フォーム処理: PHPは、HTMLフォームから送信されたデータを処理するための強力な機能を提供します。 $_POST、$_GET、$_REQUESTなどの変数を使用して、フォームからの入力データにアクセスできます。 #データベース接続: PHPは、MySQL、PostgreSQL、Oracleなどの多くのデータベースにアクセスするための豊富な機能を提供します。データベースへの接続、データの取得、更新、削除などを実行することができます。 #セッション管理: セッションは、Webアプリケーションのユーザーが同じブラウザで複数のページを閲覧する際に、情報を保持するために使用されます。PHPは、セッションを開始、管理、破棄するための関数を提供しています。 #ファイルアップロード: ユーザーがWebアプリケーションにファイルをアップロードすることができるようにする場合、・・・
+2,385
→セッション管理: PHPには、Webアプリケーションでセッション管理を行うための機能があります。セッションとは、ユーザーがWebサイトにアクセスしてからブラウザを閉じるまでの期間における、ユーザーの情報や状態を保持するための仕組みです。PHPのセッション管理機能を使うことで、ユーザーの認証やページ間でのデータのやり取りなどを簡単に実現できます。
+1,572
2022年12月7日 (水)
2022年12月2日 (金)
→列挙型: 詳細は「PHP/クラス#Enum」を参照
−13,523
→match: && 演算子を使って書き換え。
−29
→値または型の不一致演算子: !==は型まで一致していない、あるいは値が一致していないと真をかえす演算子です。
+174
→緩やかな比較: ==は、型を厳格には区別しない「緩やかな比較」演算子です。→厳密な比較: ===は、型まで一致していることを要求する「厳密な比較」演算子です。
−472
→match: PHPのmatchは、switchと似ていますが、文ではなく式なので値が取れるほか、比較には「厳密な比較」が使われます。 matchには、代替構文も埋込み構文もありません。
+1,107
→条件分岐以外の話題: 末尾に移動
−19
→switch: PHPには、C風のswitchがあり、フォールスルーの挙動などほとんど同じですが、case の式に定数式以外の式が使える他、文字列などの比較も「緩やかな比較」で行えます。
+2,317
→3つの分岐構文: PHPには、if, switch, match の3つの分岐構文があります。
−3,382
→シンプルでダーティーなログインフォーム: URI間違え
2022年12月1日 (木)
→セッション管理: PHPは、基本機能としてセッション管理機能を提供しています(認証機能ではありません)。
+610
クッキーを使ったセッション管理の基礎的な問題(セッションIDを処理系に生成させていない)などが山盛りなので削除。また国や地域によってはクッキーを受け取ることを承諾しない限りクッキーをセットできないので、セッション管理に使うべきか議論がある。
−8,826
→どこがダーティーか?: このコードには以下のような欠点があり、アジャイルにはともかく実務には使えません。 スクリプトに認証情報がハードコードされている サーバーに侵入されなければ、JavaScript のように丸見えにはなりませんが「サーバーに侵入されない」前提で認証関係のコードを書いてはいけません。 メソッドを拠り所にフォームと認証を切り替えている 細工したユーザーエージェントからならば、メソッドを自由に切替えてチャレンジできます。 チャレンジ回数に限界がない ブルートフォース攻撃に遭った時に、回数制限がないのは致命的な欠点です。
−3,343
→シンプルでダーティーなログインフォーム: もし実用的に、PHPで条件分岐をする際は、よくある例として、ウェブサイト画面になにかの入力欄があって、その入力値をもとに条件判定することになるでしょう。 ここでは例として、会員制サイトのログイン画面を考えてみます。
+704
→条件分岐: プログラミング言語は、丁度楽譜のように左から右、上から下に実行します。 しかし、PHPの最初の目的が静的なHTMLをサーバー側で動的に生成することだったことを思い出しましょう。 次の例は、時刻によって表示するメッセージを変えています。
+1,041
2022年11月20日 (日)
2022年6月24日 (金)
2022年6月18日 (土)
2022年6月12日 (日)
→列挙型: PHP8では関数の引数に型をつけることができるが、下記のように引数としてenum変数を使う際には型の代わりにenumグループ名をつけることもできる。
+599
→※応用: 関数とmatch: <code>return match</code>
+593
→match式: print match ほか
+1,157
→enum と match 式
+253
→enum と match 式: 見出しレベルのtypoついでに加筆
+587
→列挙型: == enum と match 式 == match式に enum 専用の機能は用意されていません。ですが、enum の name プロパティから要素名(文字列型である)にアクセスできることと、
+971
2022年6月10日 (金)
2022年6月8日 (水)
→スカラ値つきのenum
+101
→enum の関数: print "{$mode->value} \n";
+791
→列挙型: 説明の都合上、上記ではif文を書いてからブロック中でprintを使いましたが、別に事前に if文が無くてもprinttでenum変数のvalue値は表示できます。
+726
すじにくシチュー (トーク) による版 201780 を取り消し。自分の勘違い。いったん取り消し。
−290
→概要: ;enum変数自体はprint不可
+290
2022年5月23日 (月)
2022年5月20日 (金)
2021年12月6日 (月)
2021年12月3日 (金)
=== enum の関数 === enum は関数の引数にすることもできる。
+641
→スカラ値つきのenum: さて、enumで定義した整数値を使って計算したい場合、下記のように<code>->value</code>プロパティで代入値にアクセスする必要があります。
+657
→スカラ値つきのenum: 修正。nameプロパティは要素名へのアクセスだった
+178
2021年11月24日 (水)
2021年11月18日 (木)
→enum型と変数の同時宣言の実装状況
+317
→enum型と変数の同時宣言の実装状況: typo
−1
→スカラ値つきのenum
+416
→列挙型
+565
→列挙型: enum型と変数の同時宣言の実装状況
+1,319
→列挙型: enumの中にenumを入れるという、enumの入れ子(ネスト)については、現状のところは仕様も不明です。
+425