ワイジェイブログ

文系大学生のエンジニアに挑戦の話

2020 : 5/17~5/22 つまずいたところ

今週はPHPの勉強をした。

週の後半からはオブジェクト指向を集中的に学んだ。

オブジェクト指向めっちゃむずい。

 

月曜日

◯returnについて

目的やリターンなしの関数との違い

 

関数とは

関数とは値を演算したり、条件文で判断したり、データを登録したりなど、特定の動作をまとめて入れておく箱のようなイメージ。

 

returnとは

関数内の処理結果を取得したい場合は、returnオプションを指定して返り値を取得できる。

 

関数の定義{

処理

return 

関数の呼び出し、結果の取得

 

な感じ。

 

関数とは

関数の呼び出しの際、引数を指定すると、その引数で処理して、リターンの値を戻し、その値を変数に入れる感じ。

 

つまり表記的な違いは、

関数の呼び出しの時、

リターンなしは,

kannsu();

リターンアリは

$hensu = kansu($hikisu); 

て感じだと思う。

 

仕組み的な違いは、

リターンなしは、出力して終わりなど、

行う動作がひとつだけのシンプルなプログラム。

リターンアリは、行う動作が複数あって、それらが組み合ってる複雑なプログラム。

【PHP超入門】ユーザー定義関数の基礎の基礎 | function・return | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

 

 

火曜日

◯label

A.htmlのタグの一つ。

formの中のラジオボタンチェックボックスに対して補助的に使われるタグ。

 

目的:クリックしやすくする。

labelタグなしだと、◯と□の部分をピンポイントでクリックしないと反応しない。小さいと操作性が悪い。

labelタグだと、文字の部分をクリックしてもチェックが入る。

あると便利なタグ。フォームで使う際は必要不可欠なのでは。

labelタグってどういう時に使うの?そしてその使い方の解説 | HTML・CSS・jQueryを徹底解説!【Web担当者の作り方】

◯strlen

関数の一つ。文字数(注 正しくはバイト数)をカウントして数をintにして返す。

しかし、バイト数として返すため日本語は正確に測れないため注意。

 

そのため、文字数カウントにはmb_strlenを使うのが基本。

PHPでの文字数カウントには strlen が絶対NGな理由…正しい方法 | PisukeCode - Web開発まとめ

 

ちなみにmb_strlenのmbはマルチバイト(Multi Byte)の略。

マルチバイトとは、日本語文字などコンピューター上で多バイトで表されることをいうらしい。

 

◯isset

関数の一つ。

目的:変数に値が入っているかどうかをチェックする関数。

入っていればtrue,nullならfalseを返す。

どういう時使う:

入力フォームから、氏名や住所など必要事項などが入力されているかをチェックしたり、チェックボックスにチェックされているかを確認する時に使う。

isset関数はif-else文と合わせて使うことが多い。

 

◯empty

変数の中身を確認する関数の一つ。

空であるかを確認する。

0あるいは空である場合はtrue。

 

上のisset関数にちかい形でつかう。

早見表

PHP isset, empty, is_null の違い早見表 - Qiita

◯ファイルの操作

①ファイル操作の基本的な流れ

fopen関数でファイルを開く

fgets関数やfputs関数でファイルに対する入出力を行う。

fclose関数でファイルを閉じる。

 

②fopen関数

fopen関数は、戻り値としてファイルポインタと呼ばれる値を返す。この値を変数に代入し、他の関数(ファイル操作関数)の引数に使う。

 

ファイルポインタ(phpではファイルポインタリソース)は、
ファイル(やストリームやURLなど)を読み書き(入出力)するのに必要な情報をまとめたものです。

読み書きしているファイル(など)が、
今どの位置を指し示していて
読めるのか書けるのか、
対象はファイルなのかストリームなのかネット上のものか、
ファイルであればどこディレクトリのなんていうファイル名なのか、
などの様々な情報を取得するキッカケである、
と認識していれば良いかと思います。

PHP - 【PHP】ファイルポインタの意味がわからないので、教えてください。|teratail

 

1つ目の引数に、ファイル名。

2つ目の引数に、オープンモード。

オープンモードは3種類

r  読み込みモード

w 書き込みモード

a 追加モード(append)。ファイルが存在しない場合は新規に作成する。

 

注意 シングルクォーテーションで囲む

 

③fgets関数

1行ずつデータを読み取り、戻り値として返す。

引数はファイルポインタ。

ファイルの終わりに達したかどうかはfeof関数で調べる.

trueかfalse。

 

④fputs関数

ファイルにデータを書き込む。書き込む内容は第2引数で指定する。

第一引数はファイルポインタ。

 

⑤fclose関数

ファイルをクローズし、変更を確定させる。

引数はファイルポインタ。

 

⑥一括処理する関数

file_get_contents関数

引数に指定されたファイルを開き、内容をすべて読み込みその内容を返す。

簡単に使える関数。

引数はファイル名。

 

file_puts_contents関数

ファイル名と文字列を指定するだけでファイルを開き書き込みをする関数。

引数は ファイル名 、文字列 、(オプション)の3つ

 

水曜日

SQLの基礎的な演習

①select②insert③update④delete は覚えないとやばい。

 

木曜日

オブジェクト指向全体

いろいろな昨日がごちゃごちゃしていて整理できていない。

 

金曜日

◯クラスから全部

昨日から引き続きむずい

 

〇クラス
・自身のプロパティの参照
$this ->プロパティ名 または メソッド名()
目的 オブジェクトがクラスにプロパティやメソッドにアクセスするため??

カプセル化
privateは同じクラスの内側からしかアクセスできない。

◯アクセサ
よくわからない。要復習。
◯マジックメソッド
アクセサとほぼ一緒か?要復習。

◯静的なプロパティメソッド
static selfを使う。理由や目的よくわかっていない。要復習。
◯コンストラク
オブジェクトを初期化するためいうところからわからない。
ただ、コンストラクタ使った方がインスタンス化するときにスリムに書ける気がする。
引数で情報を渡せるから、コードが見やすいし、簡略化できる。というところはわかる。
◯抽象クラス
抽象的すぎる親クラスは何かをしてはいけない。よくわかっていない。要復習。
◯インターフェース
要復習。
◯例外処理・try catch
コード打つときに何回も打ったが、全くわかっていない。要復習。
◯PDO
重要な部分。要復習。
◯セッション
ログイン情報の取得や、アクセスカウントの重複をなくせる。
クッキーがブラウザ側にのこり、セッションがサーバー側にのこる。
勉強していたのでなんとなくわかるがなんとなくしかわからない。要復習。