- 投稿日:2020-08-18T22:54:31+09:00
PHP学習メモ②
条件分岐
PHP$score = 55; if($score >= 80){ echo "Great!" . PHP_EOL; }elseif($score >=60) echo "Good!" . PHP_EOL; else{ echo "OK!" . PHP_EOL; } # ifの場合には、「;」はいらない # {}で囲まれている内容をブロックという論理演算子
PHP# 悪い例 $score = 60; $name = "taguchi"; if($score >= 50 ){ if($name === "taguchi"){ echo "Good job!" . PHP_EOL; } } # 《論理演算子》 # && and なおかつ # || or もしくは # ! 〜ではない # 良い例 $score = 60; $name = "taguchi"; if($score >= 50 && $name === "taguchi"){ echo "Good job!" . PHP_EOL; }条件分岐
PHP#悪い例 # 「===」が並んでいるときはswichを使う $signal = 'blue'; if ($signal === 'red') { echo 'Stop!' . PHP_EOL; } elseif ($signal === 'yellow') { echo 'Caution!' . PHP_EOL; } elseif ($signal === 'blue'){ echo 'Go!' . PHP_EOL; }PHP#良い例 $signal = 'blue'; switch($signal){ case "red": echo 'Stop!' . PHP_EOL; break; case "blue": echo 'Go!' . PHP_EOL; break; case "yellow": echo 'Caution!' . PHP_EOL; break; }PHP# 指定したケース以外の場合 default; echo "Wrong signal" . PHP_EOL; break;繰り返し構文
PHPfor ($i = 1; $i <= 5; $i++){ echo "Hello" . PHP_EOL; }PHPfor ($i = 1; $i <= 10; $i++) { if($i === 4){ continue; } echo $i . PHP_EOL; } # 「continue」を使って、4の処理だけをスキップできるPHPfor ($i = 1; $i <= 10; $i++) { if($i === 4){ break; } echo $i . PHP_EOL; } # 「break」を使って、4までの処理で止めるPHP$hp = 100; while($hp > 0){ echo "Your HP:$hp" . PHP_EOL; $hp -= 15; } # 条件を書き忘れると、無限ループ
- 投稿日:2020-08-18T21:00:23+09:00
PHPについて簡単にまとめてみた
プログラミングの勉強日記
2020年8月18日 Progate Lv.226
PHPについて学んだのでまとめる。PHPとは
動的にWebページを生成できるサーバーサイドのスクリプト言語。MySQLといったデータベースとの連携が簡単で、Webアプリケーション開発によく使われる。
PHPはアクセスのタイミングや状況によって表示内容が変わるように(動的に)Webページを生成するのに対してHTMLはいつだれが見ても同じように表示されるページを(静的に)表示している。HTMLのファイルの中にPHPを埋め込むことで、PHPによって動的にHTMLを生成して表示することができる。PHPの基本的なルール
拡張子は
.php
をつける。コードの最後にセミコロンを付ける。<?php //ここに記述する ?> <?php echo '<p>Hello World</p>'; ?>変数のルール
$
から書き始める- 使用できる文字はa~z,A~Z,0~9,_
- 数字は先頭に使えない
- 日本語も使えるがあまり使わないほうがいい
変数名の規則は決まっていないが、できるだけ短くわかりやすいものにする。
if-else文 while文
基本的にはC言語と変わらないので簡単にまとめておく。
if文は、指定した条件式が当てはまるかどうかを見る。if-else文の基本的な書き方<?php if(条件式){ } elseif(条件式){ } else{ } ?>while文の基本的な書き方<?php 初期値; while(条件式){ 処理; 増減式; } ?>参考文献
- 投稿日:2020-08-18T19:10:00+09:00
【PHP】業務で使ってきたPHP関数メモ
最初に
仕事で学習してきた内容を書き出していきます。
基本的には自分自身でわかるような内容になりますので、ご容赦ください。※「覚えてない」で検索すると未調査の内容が出るよ
※「要勉強」で検索すると/未勉強の内容が出るよ試験系
str_split
文字列解体やデータ整形に使った
https://www.php.net/manual/ja/function.preg-split.php↓配列の文字列を1文字ずつ分解して、再度配列に入れ直す手段
hoge.php// hogeという文字列があるとする $array = array('hoge') foreach ($array as $k => $v) { // 配列内の文字列を1文字ずつに分解し再格納 $array = str_split($v); print_r($array); exit; // 0=>h ,1=>o, 2=>g, 3=>e みたいになるはず↓配列の文字列の中に、空白などが含まれている場合
hoge.php// ho ge ho geという文字列があるとする $array = array('ho ge ho ge') foreach ($array as $k => $v) { // カンマまたは " ", \r, \t, \n , \f などの空白文字で句を分割する。 $array = preg_split("/[\s,]+/", $v); print_r($array); exit; // 0=>ho, 1=>ge, 2=>ho, 3=>ge みたいになるはず $lines = preg_split("/\s/",$value); // とかで処理したこともあるが、何が違うのか覚えてないstrcmp
文字列の順番を入れ替えるバブルソートの時に使おうと思ったやつ
https://www.php.net/manual/ja/function.strcmp.php↓1つ前の文字列を比較して、入れ替えたい処理
⚠️正しくない処理なので注意⚠️
この場合、大なり小なりの判定結果が-1,0,1で返ってくるらしいhoge.php// そえぞれの配列にh o g eという文字列があるとする $array = array('h' , 'o' , 'g' , 'e'); // 初期化 $count = 1; foreach($array as $k => $v){ // 1つ隣なので、keyが[1]以降から処理 if($k >= $count){ // 文字列の比較判定 $array = strcmp($array[$k-1] , $v); // 1つ後ろの配列と比較 1個前のデータの方が大きかったら if($check > 0){ $tmp = $v; print_r($tmp); $v = $array[$k-1]; print_r($v); $array[$k-1] = $tmp; $i++; } } if($sort_count > 0){ return ex_bubble_sort($array); } else{ return $array; } } print_r($array); exit; // ehgoとかにしたかったんや・・・要勉強実務系
in_array()
配列に値があるかチェックするやつ
https://www.php.net/manual/ja/function.in-array.phpthrow new HttpNotFoundException;
http://fuelphp.jp/docs/1.6/general/error.html
404をスローしているResponse::redirect($hoge[$hoge], 'hoge', 301);
http://fuelphp.jp/docs/1.7/classes/response.html
新しいURLにリダイレクトする方法を提供Uri クラス
http://fuelphp.jp/docs/1.6/classes/uri.html
└URIとURLの違い
https://webtan.impress.co.jp/e/2010/03/09/7539hoge.phpUri::String() // 現在のURIを取得することができるDELETE
SQLでデリートするときはIDなどをWHEREで絞ろう
jQueryで子要素を取得する方法:children(), find()
childNodes
https://www.javadrive.jp/javascript/dom/index4.htmlJavaScriptでiframeを操作する方法
https://techacademy.jp/magazine/23192str_replace('\', '\\', $hoge['hoge']);
フォーム内の文字列に「\」がある状態で、DBにPOSTすると文字化ける
なので、\にさせることで\を表現する処理関数
public static functionにすると簡単にインスタンス化できるようになる
というより呼び出せる範囲とかが増える感じっぽい悩んだら
hoge.phpprint_r('<pre>'); print_r($provision_list); print_r('</pre>'); var_dump($変数名など); exit;✨整理前の吐き出しだけだよ✨
- 投稿日:2020-08-18T19:09:19+09:00
【Mac】XAMPP & Eclipse & XDebugにてPHPをデバッグ実行する方法
前書き
Mac OS Catalinaにアップデート後、ずっと使用していた古いXAMPPが起動しなくなったのでこの機会にXAMPPを最新化しました。 筆者はXAMPP & Eclipseで開発をしているため、ついでにEclipseでデバッグする方法についても記載しています。
※ WindowsだとEclipseの中にXAMPP入ってたはずですが、Macだと別々なので少しややこしいですね
本記事を作成した際の環境
OS :
mac OS Catalina Version 10.15.6
XAMPP :Version 7.2.32
Eclipse :Version 4.7 Oxygen
XDebug :Version 2.9.6
やること一覧
① XAMPPのインストール
② Eclipseのインストール
③ Xdebugのインストール
④ XAMPPのPHP環境にXdebugを設定
⑤ Eclipseのデバッグ構成を設定
① XAMPPのインストール
下記のサイトからMac版で最新のXAMPPをダウンロード&インストールする
https://www.apachefriends.org/download.html
② Eclipseのインストール
下記のサイトから最新版のEclipseを選択
https://mergedoc.osdn.jp/
③ Xdebugのインストール
$ tar -xvzf xdebug-2.9.6.tgz $ cd xdebug-2.9.6
3. xdebug-2.9.6をコンパイル$ phpize
4. コンパイルに成功するとconfigureフォルダが作成されるので下記のコマンドを実行$ ./configure $ make
5. moduleディレクトリに、xdebug.soファイルが作成されるので、下記のディレクトリにxdebug.soをコピーする
/Applications/XAMPP/xamppfiles/lib/php/extensions
④ XAMPPのPHP環境にXdebugを設定
- php.iniに下記の記述を追加
ちなみにphp.iniのパスはこちら →/Applications/XAMPP/xamppfiles/etc/php.ini
[xdebug] zend_extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/xdebug.so xdebug.default_enable=1 xdebug.remote_autostart=1 xdebug.remote_enable=On xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey= xdebug.profiler_enable=On
2. Apatchを再起動してphpinfo.phpを確認すると、Xdebugが追加されています
⑤ Eclipseのデバッグ構成を設定
- 投稿日:2020-08-18T16:40:49+09:00
PHP学習メモ (忘れなそうな内容を自分用にメモ)
- 投稿日:2020-08-18T16:40:49+09:00
PHP学習メモ (基礎内容を自分用にメモ)
開始タグ、閉じタグ
PHP<?php php?> PHPのファイルにはHTMLも書けますが、 PHPのコードしか書かない場合は、閉じタグを書くべきではないというルール!改行
PHPecho "Helo" . PHP_EOL; # PHPでは、"\n"ではなくPHP_EOLを使う。 # エンドオブラインコメント
PHP// コメント # コメント /* 複数行でのコメント */変数
PHP// コメント $name = 'taguchi'; echo 'Hello ' . $name . PHP_EOL; # 変数の宣言は$を利用するが、使い方はrubyとさほど変わらない""の使い方
PHP$name = 'taguchi'; echo "Hello $name" . PHP_EOL; # 「""」であれば、変数を中に入れられる!長めのテキスト表現
PHP$name = "taguchi"; $text = <<<"EOT" hello!$name this is looooooooong text! EOT; echo $text; #"EOT"をシングルにしてしまうと、変数が利用できなくなるので注意 $text = <<<'EOT' nowdoc(ドキュメント) $text = <<<"EOT" heredoc(ドキュメント)定数(1)
PHPdefine("NAME","taguchi"); echo NAME . PHP_EOL; # 定数なので、二回定義しても、すでに定義されていると表示されます定数(2)
PHPconst NAME = "taguchi"; echo NAME . PHP_EOL; # 定数なので、二回定義しても、すでに定義されていると表示されますdefineとconstの違いについて
- 投稿日:2020-08-18T16:40:49+09:00
PHP学習メモ① (基礎内容を自分用にメモ)
開始タグ、閉じタグ
PHP<?php php?> PHPのファイルにはHTMLも書けますが、 PHPのコードしか書かない場合は、閉じタグを書くべきではないというルール!改行
PHPecho "Helo" . PHP_EOL; # PHPでは、"\n"ではなくPHP_EOLを使う。 # エンドオブラインコメント
PHP// コメント # コメント /* 複数行でのコメント */変数
PHP// コメント $name = 'taguchi'; echo 'Hello ' . $name . PHP_EOL; # 変数の宣言は$を利用するが、使い方はrubyとさほど変わらない""の使い方
PHP$name = 'taguchi'; echo "Hello $name" . PHP_EOL; # 「""」であれば、変数を中に入れられる!長めのテキスト表現
PHP$name = "taguchi"; $text = <<<"EOT" hello!$name this is looooooooong text! EOT; echo $text; #"EOT"をシングルにしてしまうと、変数が利用できなくなるので注意 $text = <<<'EOT' nowdoc(ドキュメント) $text = <<<"EOT" heredoc(ドキュメント)定数(1)
PHPdefine("NAME","taguchi"); echo NAME . PHP_EOL; # 定数なので、二回定義しても、すでに定義されていると表示されます定数(2)
PHPconst NAME = "taguchi"; echo NAME . PHP_EOL; # 定数なので、二回定義しても、すでに定義されていると表示されますdefineとconstの違いについて
https://qiita.com/schrosis/items/485b984e05b2eb4521b4
型の調べ方
PHPvar_dump($a); # 型と文字数、内容について表示されます
- 投稿日:2020-08-18T16:39:36+09:00
Laravel(Blade)の配列をJavaScriptのオブジェクトに変換する
- 投稿日:2020-08-18T09:54:14+09:00
【PHP】アクセス権の意味とその使い分け
アクセス権とは?
変数やメソッドにどのクラスから接続できるかを示した定義。
public / private / protected
上記3つのアクセス修飾子を変数やメソッドのはじめにつけることで定義する。3つのアクセス修飾子の意味
public :どこからでもアクセス可能
protected:そのクラス内とそのクラスを継承したクラス、また親クラスからアクセス可能
private :そのクラス内でしかアクセスできないこの3つをどのように使い分けていくのか?
public :そのクラス外からも呼ばれるもの(メインメソッド・getメソッドなど)
protected:継承先でも使うもの
private :上記以外はprivateでつくる基本的にはprivateとpublicで作って、
継承が必要となった時にprotectedを使用していくのが
カプセル化を促進する上で有効なのではないか、と思っています。例:
税率って他から書き換えられたくはない
でも取得する処理は必要Class Tax { private $tax = 1.1; public function getTax() { return $this->tax; } }例:
性別は男性クラスのすべてにおいて必要
継承先でも使えるようにするClass Man { protected $sex = 'male'; public function getSex() { return $this->sex; } }使い分けなど、1年間プログラミングをしてきた上での私見なので、
ご意見があれば頂戴したいです!