20200818のPHPに関する記事は9件です。

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;

 繰り返し構文

PHP
for ($i = 1; $i <= 5; $i++){
  echo "Hello" . PHP_EOL;
}
PHP
for ($i = 1; $i <= 10; $i++) {
  if($i === 4){
    continue;
  }
  echo $i . PHP_EOL;
}

# 「continue」を使って、4の処理だけをスキップできる
PHP
for ($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;
}
# 条件を書き忘れると、無限ループ
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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>';
?>

変数のルール

  1. $から書き始める
  2. 使用できる文字はa~z,A~Z,0~9,_
  3. 数字は先頭に使えない
  4. 日本語も使えるがあまり使わないほうがいい

 変数名の規則は決まっていないが、できるだけ短くわかりやすいものにする。

if-else文 while文

 基本的にはC言語と変わらないので簡単にまとめておく。
 if文は、指定した条件式が当てはまるかどうかを見る。

if-else文の基本的な書き方
<?php
  if(条件式){
  }
  elseif(条件式){
  }
  else{
  }
?>
while文の基本的な書き方
<?php
  初期値;
  while(条件式){
    処理;
    増減式;
  }
?>

参考文献

PHPとは?基礎知識、できることを初心者にもわかりやすく解説します

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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.php

throw 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/7539

hoge.php
Uri::String() // 現在のURIを取得することができる

DELETE

SQLでデリートするときはIDなどをWHEREで絞ろう

jQueryで子要素を取得する方法:children(), find()

https://uxmilk.jp/10873

childNodes
https://www.javadrive.jp/javascript/dom/index4.html

JavaScriptでiframeを操作する方法
https://techacademy.jp/magazine/23192

str_replace('\', '\\', $hoge['hoge']);

フォーム内の文字列に「\」がある状態で、DBにPOSTすると文字化ける
なので、\にさせることで\を表現する処理

関数

public static functionにすると簡単にインスタンス化できるようになる
というより呼び出せる範囲とかが増える感じっぽい

悩んだら

hoge.php
print_r('<pre>');
print_r($provision_list);
print_r('</pre>');

var_dump($変数名など);
exit;

✨整理前の吐き出しだけだよ✨

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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
1.png

② Eclipseのインストール

  1. 下記のサイトから最新版のEclipseを選択
    https://mergedoc.osdn.jp/
    2.png

  2. PHPMac 64bitからFull Editionをダウンロード&インストール
    3.png

③ Xdebugのインストール

  1. 下記のサイトから最新のXdebugをインストールする
    4.png

  2. ダウンロードした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を設定

  1. 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が追加されています
5.png

⑤ Eclipseのデバッグ構成を設定

  1. パースペクティブにてPHPを選択、デバッグからデバッグの構成を選択
    6.png

  2. PHP Webアプリケーションを右クリックして、新規を選択
    7.png

  3. サーバーから新規を選択
    8.png

  4. 下記のように設定して完了ボタンを押下
    サーバー名 : 任意の名前
    ベースURL : http://127.0.0.1
    文書ルート : /Applications/XAMPP/xamppfiles/htdocs
    9.png

  5. PHP サーバーに先ほど作成したサーバーを選択して、ファイルに対象のプロジェクトを選択
    ※ ファイルはデバッグ実行時に起動するファイルを設定しているだけなので、とりあえずindex.phpが無難

  6. デバッガーから、構成を選択
    11.png

  7. デバッガーからXDebugを選択
    12.png

  8. 名前に任意の名前を設定しておく
    13.png

  9. 適用を押下
    14.png

  10. 作成したデバッグ構成を実行
    15.png

デバッグポイントに止まります
16.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHP学習メモ (忘れなそうな内容を自分用にメモ)

開始タグ、閉じタグ

PHP
<?php

php?>

PHPのファイルにはHTMLも書けますが、
PHPのコードしか書かない場合は、閉じタグを書くべきではないというルール!

改行

PHP
echo "Helo" . PHP_EOL;

PHPでは"\n"ではなくPHP_EOを使う
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHP学習メモ (基礎内容を自分用にメモ)

開始タグ、閉じタグ

PHP
<?php
php?>

PHPのファイルにはHTMLも書けますが、
PHPのコードしか書かない場合は、閉じタグを書くべきではないというルール!

改行

PHP
echo "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)

PHP
define("NAME","taguchi");
echo NAME . PHP_EOL;

# 定数なので、二回定義しても、すでに定義されていると表示されます

 定数(2)

PHP
const NAME = "taguchi";
echo NAME . PHP_EOL;

# 定数なので、二回定義しても、すでに定義されていると表示されます

defineとconstの違いについて

https://qiita.com/schrosis/items/485b984e05b2eb4521b4

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHP学習メモ① (基礎内容を自分用にメモ)

開始タグ、閉じタグ

PHP
<?php
php?>

PHPのファイルにはHTMLも書けますが、
PHPのコードしか書かない場合は、閉じタグを書くべきではないというルール!

改行

PHP
echo "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)

PHP
define("NAME","taguchi");
echo NAME . PHP_EOL;

# 定数なので、二回定義しても、すでに定義されていると表示されます

 定数(2)

PHP
const NAME = "taguchi";
echo NAME . PHP_EOL;

# 定数なので、二回定義しても、すでに定義されていると表示されます

defineとconstの違いについて

https://qiita.com/schrosis/items/485b984e05b2eb4521b4

 型の調べ方

PHP
var_dump($a);
# 型と文字数、内容について表示されます
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel(Blade)の配列をJavaScriptのオブジェクトに変換する

メモ書きです。

Bladeのコード

<script>
    var app = <?php echo json_encode($array); ?>;
</script>
<script>
    var app = @json($array);

    var app = @json($array, JSON_PRETTY_PRINT);
</script>
<script>
    var app = {!! json_encode($array) !!}
</script>

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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年間プログラミングをしてきた上での私見なので、
ご意見があれば頂戴したいです!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む