PHP」カテゴリーアーカイブ

laravel-admin がモデルを認識しないときの解決法 composer dump-autoload

Laravel-adminで新しくコントローラを作成しようとしていたとき

php artisan admin:make AnalyticsController --model=App\\Models\\Analytycs 

Model does not exists !  となりできなかった

laravel-admin がモデルを認識しないときの解決法

composer dump-autoload

新しいクラスやファイルが正しく認識されるようになる

再度コマンドをしてみる

php artisan admin:make AnalyticsController --model=\App\Models\Analytycs 

無事成功しました!

INFO App\Admin\Controllers\AnalyticsController [C:\xampp\htdocs\ga-analytycs\laravel_ga_chart\app/Admin/Controllers/AnalyticsController.php] created successfully. 
Add the following route to app/Admin/routes.php: $router->resource('analytycs', AnalyticsController::class);

 

Paiza演習問題:カンマ区切りで 10 個出力 2 (paizaランク D 相当)

カンマ区切りで 10 個出力 2 (paizaランク D 相当)

10 個の数値が半角スペース区切りで与えられます。これらの数値をカンマ区切りで出力してください。ただし、末尾にはカンマではなく改行を出力してください。

入力される値
N1 N2 N3 ... N10

入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。

期待する出力
答えの数値を出力してください。

N1,N2,N3,...,N10

末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件
すべてのテストケースにおいて、以下の条件をみたします。

* 入力される数値はすべて 0 以上 1,000 以下

入力例1
0 1 2 3 4 5 6 7 8 9
出力例1
0,1,2,3,4,5,6,7,8,9
入力例2
462 218 867 547 11 630 845 689 891 630
出力例2
462,218,867,547,11,630,845,689,891,630

解答implode(",", $変数名)dを使えばかんたんだよ

<?php
  //半角スペース刻みの入力値を配列に格納
  $ary = explode(" ", fgets(STDIN));
  //カンマを足して出力
  echo implode(",", $ary);
?>

PHPプログラミングノート7(組み込み関数3)

組み込み関数についてまとめる

ファイル操作(取得・保存・ベースネーム・ディレクトリパスを返す・絶対パスを返す)

file_get_contents() 

ファイルの内容をすべて取得する。また、URLを指定してウェブサイトのソースを取得することもできる。 

file_put_contents() 

文字列をファイルとして保存する。 

basename() 

ファイルやディレクトリのパスから最後にある名前の部分を返す。 

dirname() 

ファイルパスからディレクトリパスを取り出して返す。

dirname(__FILE__) とすることで実行中のPHPファイルのあるディレクトリを得ることもできる。 
これは「__DIR__」と同義。 

realpath() パスの「/./」や「/../」「/」などの参照を全て解決して正規化した絶対パスを返す。

ファイル操作(ファイルが存在しているか?・F、URLオープン・ファイルロック・1行取得・スプリットして取得)

file_exists() 

指定されたファイルパスにファイルが存在するかを調べて返す。 

fopen() 

ファイルやURLをオープンしてストリームに結びつける。 

flock()

fopen()によってオープンされたファイルのロック・開放を行う。 

fgets() 

ファイルポインタから一行取得する。 

fgetcsv() 

ファイルポインタから一行取得し、指定された文字をもとに区切られた配列を返す。

ファイル関連(fopen() によってオープンされたファイルを書き込み・クローズ・ファイルポインタの位置を先頭に戻す。内容を指定した長さに丸める)

fwrite() 

fopen() によってオープンされたファイルストリームに書き込む。

fclose() 

fopen() によってオープンされたファイルポインタをクローズする。 

rewind() 

ファイルポインタの位置を先頭に戻す。 

ftruncate() 

fopen() によってオープンされたファイルの内容を指定した長さに丸める。 
サイズに 0 を指定することでファイルを空にできる。

ファイル関連(ポインタが終端にいるかどうか?・HTTP POSTでアップロードされたかどうか・←真の時指定されたファイル名に移動する)

feof() 

ファイルポインタが終端に達しているかを調べて返す。 

is_uploaded_file() 

ファイルが HTTP POST によりアップロードされたファイルであるかを調べて返す。 
不正操作を防ぐために用いられる。

move_uploaded_file() 

ファイルが HTTP POST によりアップロードされたファイルである場合、指定されたファイル名に移動する。

ファイル関連(mkdir・ファイル削除・リネームや移動・コピー・ファイルかどうか?・ディレクトリかどうか?・chmod・chown)Linuxと同じコマンドあり

mkdir() 

ディレクトリを作る。パーミッションを設定したり入れ子構造のディレクトリを作ることもできる。 

unlink() 

ファイルを削除する。 

rmdir() 

ディレクトリを削除する。

rename() 

ファイル名を変える。ファイルを移動する。 

copy() 

ファイルをコピーする。 

is_file() 

指定されたパスがファイルを指しているかを調べて返す。 

is_dir() 

指定されたパスがディレクトリを指しているかを調べて返す。 

chmod() 

ファイルのパーミッションを変更する。 

chown() 

ファイルのオーナーを変更する。

ネットワーク(特殊文字をエスケープ・生HTTPヘッダーを出力・改行タグ変換・HTML タグを取り除く・連想配列からURLエンコードされたクエリ文字列を生成)

htmlspecialchars() 

HTMLの特殊文字として扱われる文字をHTMLエンティティに変換する。
(エスケープ)「<」などは「<」に変換され、HTMLタグとして扱われることを防げるほか、 
不正なスクリプトタグを仕込まれて実行されるリスクを回避できる。 
大抵は「ENT_QUOTES」フラグを用いてシングルクォートも変換対象にする。 

header() 

生の HTTP ヘッダーを出力する。 
「HTTP/1.0 404 Not Found」などのステータスコードを出力したり、
「Content-Type: image/jpeg」などのファイルヘッダーを出力することができる。 
「Location: http://www.example.com」とすることで指定された 
URL にリダイレクトする際にも用いられる。
 
nl2br() 

文字列の改行箇所を「<br>」などの改行タグに変換する。 

strip_tags() 

文字列から HTML タグを取り除く。 許可するタグを指定することもできる。 

http_build_query() 

連想配列からURLエンコードされたクエリ文字列を生成する。 
つまり配列を GET パラメータとして使える「foo=123&bar=hello」のような文字列に変換できる。

(URLとして利用できる文字列に変換・GET、POSTなどのパラメータをフィルタリングしたうえで受け取る・指定したフィルターでデータをフィルタリングする。・セッションを開始する。セッションハイジャック攻撃を防ぐ・セッション情報を全て破棄する・クッキーに値を保存する。)

rawurlencode(), rawurldecode() 

rawurlencode() は非アルファベット文字をパーセント記号と16進数を用いて 
URL として利用できる文字列に変換する。 
rawurldecode() によって元の文字列を復元できる。 

filter_input() 

GET、POST などのパラメータをフィルタリングしたうえで受け取る。 
$_GET、$_POST を直接操作するかわりにこの関数を通す。 

filter_var() 

指定したフィルターでデータをフィルタリングする。 
データがメールアドレスとして正しい書式であるかを調べたり、
特殊文字を取り除いたりするなど、様々なフィルタが利用できる。 

session_start() 

セッションを開始する。セッションIDを渡すことで現在のセッションを復帰することもできる。 

session_regenerate_id() 

セッションの情報を位置したままセッションIDを新しく生成した値に置き換える。
 セッションハイジャック攻撃を防ぐ手段として用いられる。 

session_destroy() 

セッション情報を全て破棄する。再開するには再度 session_start() する必要がある。 

setcookie() クッキーに値を保存する。有効期限を設定することもできる。

ハッシュ関連(ハッシュ値を生成する・MD5を使いハッシュ値を生成する・擬似乱数ハッシュ値を生成する・MIMEbase64でエンコード・デコードする・JSON形式で返したり・JSON→連想配列にする・マルチバイト文字に基づいたエンコード変換をしてメール送信)

hash() 

選択したアルゴリズムに基づいてハッシュ値を生成する。

md5() 

MD5 アルゴリズムを用いてハッシュ値を生成する。 

random_bytes() 

暗号論的に安全な疑似乱数生成器(CSPRNG)を使ったハッシュ値を作成。 

base64_encode(), base64_decode() 

文字列を MIME base64 方式でエンコード、デコードする。 

json_encode(), json_decode() 

連想配列を JSON 形式にして返したり、JSON 形式の文字列を連想配列に変換する。 

json_decode() を行う際第二引数に true を指定すると 
stdClass Object のかわりに連想配列に変換される。 

mb_send_mail() 

mb_language() により設定された言語に基づいてエンコード変換を行ってメールを送信する。

その他(ファイル読み込み・1つのみ読み込み・変数の内容表示・変数の詳細表示・
カウント・定数定義・)

require();
require_once();
include();
include_once(); 

別ファイルの読み込み。ファイル読み込めない場合にrequireはエラー、
includeは警告。_onceがついていると同名ファイルは1つのみ読込になる。
読み込む際は __DIR__ を使い絶対パスで指定する。 

print_r() 

変数の内容をわかりやすく表示する。 文字列に限らず連想配列も表示できるほか、
第二引数に true を指定することで結果を文字列として返すこともできる。 

var_dump() 

変数の内容を詳細にダンプする。 含まれるオブジェクトの型、内容を細かく知ることができる。
print_r() よりも詳細な内容を知りたい時に使う。 

count() 

配列やオブジェクトの要素数を数えて返す。 

define() 

定数を定義する。 大文字のアルファベットで名前をつける習慣がある。

その他(変数宣言されているか?Keyが存在するか?・空(0・Null、false)かどうか?・変数破棄・タイムスタンプ関連)

isset() 

変数が宣言されているか、配列にキーが存在するかを返す。 
内容が NULL であっても TRUE を返す。 
配列にキーが存在するかを調べる関数として array_key_exists() があるが、
そちらは ["key" => NULL] の場合 FALSE を返す。 

empty() 

変数の内容が空であるかを返す。空文字、「0」、空配列、NULL、FALSE などがからであると判断される。

unset() 指定した変数を破棄する。連想配列から一部のキーを取り除く際にも使える。 

time(), microtime() 現在のUNIXタイムスタンプを得る。 
1970年1月1日 00:00:00 GMT からの通算秒。 
マイクロ秒まで知りたい場合は microtime() を使う。

mktime()

時、分、秒、月、日、年 を指定することでその日時のUNIXタイムスタンプを得る。

date() 

UNIXタイムスタンプを日時を表す文字列としてフォーマットして出力する。
日時の取り扱いに関しては date() よりも DateTime クラスを利用するケースが増えている。
Carbonライブラリを使う事も多い。

PHPプログラミングノート6(組み込み関数)

文字列・数値の出力

echo() 

ブラウザに1つ以上の文字列を出力

printf(), sprintf()

文字列をフォーマットに当てはめて出力する。

printf() は出力を行い、sprintf() は結果を文字列として返す。

文字列・数値の一致、検索・正規表現による置換・エスケープ

preg_match(), preg_match_all() 

正規表現による一致・検索。
preg_match_all() はパターンにマッチしたすべての値を変数に格納する。 

preg_replace() 

正規表現による置換。パターンにマッチした文字列を指定した文字列に置換する。 

preg_quote() 

正規表現構文の特殊文字の前にバックスラッシュをつけてエスケープする。

正規表現(Regular Expression)の使い方

^ 行頭にマッチする \A

$ 行末にマッチする \z//

. 改行以外の任意の1文字にマッチする

[] 角括弧内の任意の1文字にマッチする

[A-Z] 英大文字A-Zの任意1文字にマッチする

[^] 角括弧内に含まれない1文字にマッチする

* 直前の表現を0回以上繰り返す

+ 直前の表現を1回以上繰り返す

? 直前の表現を0回または1回繰り返す

{n} 直前の表現をn回繰り返す。nは整数。

{n,m} 直前の表現をn回からm回まで繰り返す。n,mは整数。

a|b aまたはbにマッチする

[あ-ん] ひらがなの1文字にマッチする。

文字列の操作関連(置換・取り出し・小文字・大文字変換)

str_replace(), strtr() 

文字列の置換。
strtr() は複数の文字列のペアを渡して同時に置換できる。 

substr(), mb_substr() 

文字列の何文字目から何文字取り出すかを指定して文字列の一部分を返す。 

strtolower(), strtoupper() 

strtolower() はすべてのアルファベットを小文字に変換し、 
strtoupper() はすべてのアルファベットを大文字に変換する。

文字列の操作関連(バイト数・インデックス・文字コード変換・相互変換)

strlen(), mb_strlen()

strlen() は文字列のバイト数を返す。
mb_strlen はマルチバイト文字の文字数を返す。

strpos(), mb_strpos()

文字列の中から指定された文字列が何文字目に存在するかを返す。
大文字小文字を区別しない場合、stripos()、mb_stripos() が用意されている。

mb_convert_encoding()

文字列を指定された文字コードに変換して返す。

mb_convert_kana()

ひらがな・カタカナ、全角・半角を相互に変換する。

文字列・数値の操作関連(切り取り・ランダムに返す・型が(文字列・数値・浮動小数)かどうか・四捨五入・切り捨て・切り上げ

trim(), ltrim(), rtrim()

文字列の前後からスペースやタブなどの空白文字や指定された文字を取り除く。
trim() は前後から取り除き、ltrim() は左から、rtrim() は右からのみ取り除く。

mt_rand()

指定された範囲でランダムな数値を返す。(パスワード生成・トークン生成に使うのはNG。使うならrandom_bytes()。

is_string(), is_int(), is_float(),is_numeric()

与えられた値が文字列か、整数型か、float型(少数)、数値・文字列として扱えるか を返す。

round(), floor(), ceil()

round() は小数部分を四捨五入して返す。
floor() は小数点以下切り捨て、ceil() は小数点以下切り上げで丸める。
桁数を指定することで小数点以下何桁から丸めるかを変更できる。

配列関連(追加・結合・include?・配列かどうか?)

array_push()

配列に配列を追加する。

array_slice()

配列の何番目からいくつ取り出すかを指定して取得する。

array_merge(), array_merge_recursive()

配列同士を結合する。
array_merge_recursive() は再帰的に結合するため多次元配列でも使える。

in_array()

配列の中に指定された値が含まれているかを返す。

is_array()
渡された値が配列であるかを返す。

配列関連(特定カラムの配列作成・Keyと値の結合・マルチソート)

array_column()

多次元配列から特定カラムの配列をつくる。

array_combine()

2つの配列の一方をキー名、もう一方を値として、1つの配列に結合する関数です。

array_multisort()

複数の配列を他の配列の値をもとにソートする。

配列関連(重複削除・reverse・shift・pop)

array_unique()

配列から重複した値を削除して返す。

array_reverse()

配列の要素を逆順にして返す。

array_shift(), array_pop()

array_shift() は配列の先頭から要素を取り出し、

array_pop() は配列の末尾から要素を取り出す。
元の配列は取り出された分短くなる。

配列関連(関数を全要素に適用する・検索・concat・split)

array_walk(), array_walk_recursive()

ユーザー定義関数を配列中のすべての値に適用する。
arra_walk_recursive() は多次元配列に対して再帰的に処理する。

array_search()

配列の中から指定された値を持つ要素を検索し、見つかった場合そのキーを返す。

implode(), explode()

implode() は指定された区切り文字をもとに配列を文字列として結合し、
explode() は指定された区切り文字を元に文字列を配列に変換する。

配列関連(シャッフル・ソート(連想配列・キー・ユーザー定義関数含む)・range)

shuffle()
配列をランダムにシャッフルする。

sort(), rsort()
配列を昇順、降順でソート(並び替え)する。キーは新しく割り振られるため、もともとのキーは削除される。

asort(), arsort()
連想配列を昇順、降順でソート(並び替え)する。もともとのキーは保持される。

ksort(), krsort()
配列のキーをもとに昇順、降順でソートする。

usort(), uasort(), uksort()
ユーザーが定義した関数に基づいて配列をソートする。

range()
指定された範囲の整数・文字を持つ配列を作成する。

配列関連(リセット・配列のポインタを(すすめる・戻す・現在値を返す)・キー部分を変数名とする変数を作る。配列を引数として与えられた複数の変数に分けて代入する。)

reset(), end()
reset() は配列のポインタを先頭の要素のセットし、その値を返す。
reset() は配列のポインタを最後の要素のセットし、その値を返す。
実際には配列の最初や最後の要素を取得する目的で使うことが多い。

next(), prev()
next() は配列のポインタを進め、その値を返す。
prev() は配列のポインタを戻し、その値を返す。

current()
現在の配列のポインタが指す値を返す。

extract()
連想配列のキー部分を変数名とする変数を作る。

list()
配列を引数として与えられた複数の変数に分けて代入する。

 

PHPプログラミングノート5(組み込み関数,ユーザー関数)

関数の作成法(JavaScriptとほぼ同じ感じ)

<?php

// 関数

// 引数なし 戻り値なし

function Hello_World(){

  echo'Hello World!';

}

Hello_World();

  echo '<br>';

// 引数あり 戻り値なし

function getString($string){

  echo$string;

}

getString('Hello_World!');

// 引数なし 戻り値なし
function getNumber(){
  return 5;
}

echo '<br>';

echo getNumber();

echo '<br>';

var_dump (getNumber());

$num = getNumber();

echo '<br>';

echo $num;

// 引数2つ 戻り値あり

function sumNumbers($num1, $num2){

  $num3 = $num1 + $num2;

  return $num3;
}
  echo '<br>';

  $total = sumNumbers(4,7);

  echo $total;

?>

↑を出力すると・・・

Hello World!
Hello_World!
5
int(5)
5
11

組み込み関数

<?php

// 組み込み関数 文字列の長さ

$strings = 'aiueo';

$strings1 = 'あいうえお';

echo strlen($strings);

echo '<br>';

// マルチバイト文字 日本語はSJIS, UTF-8 3~6バイトの場合

echo mb_strlen($strings1);

echo '<br>';

// 文字列の置換

$str = 'aiueo';

echo str_replace('aiueo','あいうえお',$str);

$split = 'Hello_World!';

//文字列の分割Rubyのsplitみたいなもの

echo '<pre>';

var_dump(explode('_', $split));

echo '</pre>';

// 正規表現で特定の文字が含まれるか確認する;

$str1 = 'Hello_World!';

echo preg_match('/Hello/',$str1);

echo '<br>';

// 指定文字列から文字列を取得する マルチバイト文字はmb_が必要

echo substr('Hello_World!', 5);

?>

↑を出力すると・・・

5
5
あいうえお

array(2) {
  [0]=>
  string(5) "Hello"
  [1]=>
  string(6) "World!"
}


1
_World!

ユーザー関数の作り方

Rubyと同じようにキャメルケースかスネークケースで名付ける

<?php

// ユーザー関数 郵便番号の書式になっているか調べる関数
//camelCase(ラクダ(camel)のコブのような書式)
$zipCode = '123-45678';
$zipCode1 = '123-4567';

function checkzipCode($str){

//変数内の-(ハイフン)を空白に置き換える
  $replaced = str_replace('-','',$str);

//文字列の長さを$lengthに代入する
  $length = strlen($replaced);

//文字列の長さを出力
  var_dump($length);

//文字列の長さが7のときにtrueを返すがそれ以外はfalseを返す
  if($length === 7){

    returntrue;

  }
    returnfalse;
  }

var_dump(checkzipCode($zipCode));

echo '<br>';

var_dump(checkzipCode($zipCode1));

?>

↑を出力すると・・・

int(8) bool(false)
int(7) bool(true)

8文字なのでfalseが帰り、7文字のときはTrueが帰ってくる

PHPプログラミングノート4(foreach~switch)

foreach

<?php

// foreach

$ary_persons = [

'name' => 'suzutuki',

'weight' => '55kg',

'height' => '179cm'

];

// Valueのみ表示

foreach($ary_persons as $ary_person){

  echo$ary_person;

}

// KeyとValue両方表示

  echo '<br>';

foreach($ary_persons as $key => $value){

  echo$key.'は'.$value.'です';

}

?>

↑を出力すると・・・

suzutuki55kg179cm
nameはsuzutukiですweightは55kgですheightは179cmです

入れ子が深い場合はこのように出力する

<?php

// foreach

// 連想配列

$ary_members_3 = [ 
'sun_group' => [ 
'suzutuki' => [ 
'weight' => '55kg',
 'height' => '179cm' 
], 
'akatuki' => [ 
'weight' => '70kg', 
'height' => '183cm'
 ],
 ], 
'moon_group' => [
 'akina' => [
 'weight' => '45kg',
 'height' => '149cm'
 ], 
'kotaro' => [
 'weight' => '60kg',
 'height' => '175m'
 ]
 ]
];

// Value両方表示

echo '<br>';

foreach($ary_members_3 as $ary_members_2){

foreach($ary_members_2 as $ary_members_1){

foreach($ary_members_1 as $ary_members => $value){

echo$ary_members.'は'.$value.'です';

// echo $key . 'は' . $value . 'です';

}

}

}

?>

↑を出力すると・・・

weightは55kgですheightは179cmですweightは70kgですheightは183cmですweightは45kgですheightは149cmですweightは60kgですheightは175mです

KeyとValue両方表示する場合は

<?php
// foreach

// 連想配列

$ary_members_3 = [ 
'sun_group' => [ 
'suzutuki' => [ 
'weight' => '55kg',
'height' => '179cm' 
], 
'akatuki' => [ 
'weight' => '70kg', 
'height' => '183cm'
],
], 
'moon_group' => [
'akina' => [
'weight' => '45kg',
'height' => '149cm'
], 
'kotaro' => [
'weight' => '60kg',
'height' => '175m'
]
]
];
// KeyとValue両方表示

echo '<br>';

foreach($ary_members_3 as $ary_members_2){

 foreach($ary_members_2 as $ary_members_1){
 
  foreach($ary_members_1 as $key => $value){

   echo $key . 'は' . $value . 'です';
}
}
}
?>

↑を出力すると・・・

weightは55kgですheightは179cmですweightは70kgですheightは183cmですweightは45kgですheightは149cmですweightは60kgですheightは175mです

for、while、do while文

<?php

// for、while文
for($i = 0; $i < 10; $i++ ) {

if($i === 4){
}
echo $i;
}

echo '<br>';

$j = 0;
while($j < 7){
echo $j;
$j++;
}
echo '<br>';

$h = 0;
do{
echo $h;
$h++;
}
while($h < 5);

?>

↑を出力すると・・・

0123456789
0123456
01234

switch文(Rubyのcase文に似ているが違う)

// switch文
$num = 1;
switch ($num) {

  case1:

    echo'1です';

    break;

  case2:

    echo'2です';

    break;
 
  case3:

    echo'3です';

    break;

  default:

    echo'1-3です';
}

↑を出力すると・・・

1です

PHPプログラミングノート3(演算子とif)

算術演算子の使い方

Rubyとほぼ同じだが、割り算をするときに小数点がつくのが違う部分だ

<?php

// 演算子

$num_1 = 9;

$num_2 = 6;

$result_1 = $num_1 + $num_2;

$result_2 = $num_2 - $num_1;

$result_3 = $num_1 * $num_2;

$result_4 = $num_2 / $num_1;

$result_5 = $num_1 % $num_2;

// 見やすくする

echo '<pre>';

echo $result_1;

echo '<pre>';

echo $result_2;

echo '<pre>';

echo $result_3;

echo '<pre>';

echo $result_4;

echo '<pre>';

echo $result_5;

echo '<pre>';

?>

↑を出力すると・・・

15
-3
54
0.66666666666667
3

if文の一番簡単な構文(Rubyとほぼ同じ)

<?php

// ifの構文

// if (条件) {

// 条件が真なら実行

// }

$point = 70;

if ($point >= 70) {

echo'テストの合格点は'.$point.'以上なので合格です';

  }

?>

↑を出力すると・・・

テストの合格点は70以上なので合格です

※また==と===があり、Rubyと同じで===は型も一致しているかどうか判定する

<?php

// ifの構文

// if (条件) {

// 条件が真なら実行

// }else{

// }

$point = 60;

if ($point >= 70) {

echo'テストの合格点は'.$point.'以上なので合格です';

}else{

echo'不合格です';

}

?>

↑を出力すると・・・

不合格です

2重if文や、else if、 elseなど

<?php

// ifの構文

// if (条件) {

// 条件が真なら実行

// }else{

// }

$point = 72;

$report = true;

if ($point >= 90) {

if ($report){

echo'評価はSです';

}

}else if($point >= 70){

echo'評価はAです';

}

else{

echo'不合格です';

}

?>

わざわざ2重if文を使うよりもRubyのように and && or || を使うと良い

!= はRubyと同じでNotEqualだが、!==は型も一致しているかどうかで調べられるのがRubyと違うところ

空かどうか?(is_null,empty)Rubyとほぼ同じ

$ary = [];

$report = true;

if (empty($ary) ) {

echo'空です';

}else{

echo'なにか入っています';

}

?>

3項演算子Rubyとほぼ同じ(ただし直接出力ができない)

<?php

// ifの構文

// 3項演算子の構文
// 条件 ? 真 : 偽

$ary = [];

$result = empty($ary) ? '空です' : 'なにか入っています';

echo $result;

?>

↑を出力すると・・・

空です

PHPプログラミングノート2(連想配列)

連想配列はよく使うので理解を深める

連想配列 (Rubyのハッシュににている)

<?php

// 連想配列

$ary_person = [

'name' => 'suzutuki',

'weight' => '55kg',

'height' => '179cm'

];

echo $ary_person['height'];

echo('<br>');

var_dump($ary_person);

?>

実行すると・・・

179cm
array(3) { ["name"]=> string(8) "suzutuki" ["weight"]=> string(4) "55kg" ["height"]=> string(5) "179cm" }

更に入れ子構造になっている連想配列

<?php

// 連想配列

$ary_member = [

  'sun_group' => [

  'suzutuki' => [

  'weight' => '55kg',
 
  'height' => '179cm'

],
  
  'akatuki' => [

  'weight' => '70kg',

  'height' => '183cm'

],

],

  'moon_group' => [

  'akina' => [

  'weight' => '45kg',

  'height' => '149cm'

],

  'kotaro' => [

  'weight' => '60kg',

  'height' => '175m'

]

]

];
// moon_groupのakinaのweightを出力
echo$ary_member['moon_group']['akina']['weight'];

// 見やすくする

echo'<pre>';

//ary_memberのすべてを出力する
var_dump($ary_member);

echo'<pre>';

?>

↑を出力すると・・・

45kg
array(2) {
  ["sun_group"]=>
  array(2) {
    ["suzutuki"]=>
    array(2) {
      ["weight"]=>
      string(4) "55kg"
      ["height"]=>
      string(5) "179cm"
    }
    ["akatuki"]=>
    array(2) {
      ["weight"]=>
      string(4) "70kg"
      ["height"]=>
      string(5) "183cm"
    }
  }
  ["moon_group"]=>
  array(2) {
    ["akina"]=>
    array(2) {
      ["weight"]=>
      string(4) "45kg"
      ["height"]=>
      string(5) "149cm"
    }
    ["kotaro"]=>
    array(2) {
      ["weight"]=>
      string(4) "60kg"
      ["height"]=>
      string(4) "175m"
    }
  }
}

PHPのまとめ1環境構築から2次元配列まで(プログラミングノート)

PHP学習のための準備

MAMPをインストールする

MAMPで検索してインストールする

MAMP→htdocs→php_testのファイルを作成して→PHPファイルを設置してブラウザで確認する

ブラウザで確認する方法

http://127.0.0.1/php_test/ファイル名

PHPの基本構文<?php?>

<?php
  echo('test');
  phpinfo();
?>

<?php から始まり ?> で終わる。実行するときは;(セミコロン)を利用する

HTMLとPHPを使うとき

<!DOCTYPE html>
<head></head>
<body>

こちらはHTMLだよ

<?php
  echo('こちらはPHPだよ');
?>
</body>
</html>

コメント数字や文字列の使い方

<?php
// 1行コメントのときは//

/*複数行コメントの場合は/**/の間に書く
*/

//半角のときは数値として認識される

 echo(789);
echo('<br>');
//全角の場合文字列として認識される

echo(789);
echo('<br>');
//文字列の場合はRubyと同じで''""を使う

echo('文字列');
echo('<br>');
echo("文字列");
echo('<br>');
?>

変数と.について

<?php

// 変数 Rubyと同じ動的型付け言語 先頭は英文字 × 1int ○_numはできる

$num = 123;

$num2 = 234;

$sum = $num . $num2;

$strings = '文字列だよ';

// 配列 オブジェクト コレクション型

var_dump($sum);

?>

実行結果

string(6) "123234"

数字同士を足したはずなのに文字列同士を足して出力された。

暗黙的に変換された?(Rubyとは違う)

定数 (constで定義) JavaScriptに似ている

<?php

// 定数 変わらないものに使う 文字

// constantの略

const TAX = '10%';

echo TAX;

?>

配列 Rubyとほぼ同じ感じで[]内に入れる

<?php

// 配列

$ary = [1,2,3];
$ary2 = ['aiueo',5,7];
echo $ary[1];
// 見やすくする
echo '<pre>';

var_dump($ary);
var_dump($ary2);
echo '</pre>';

?>

出力すると・・・

2
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(3) {
[0]=>
string(5) "aiueo"
[1]=>
int(5)
[2]=>
int(7)
}

2次元配列の作り方 (Rubyとほぼ同じ)

<?php

// 2次元配列

$ary3 = [

[4,5,6],

[8,9,10]

];

var_dump($ary3);

?>

↑を出力すると・・・

array(2) { [0]=> array(3) { [0]=> int(4) [1]=> int(5) [2]=> int(6) } [1]=> array(3) { [0]=> int(8) [1]=> int(9) [2]=> int(10) } }