エンジニアの卵_level5

【毎日更新!】エンジニアの卵のブログです!技術以外も書いたり。

php

このPHPのコードのメモリの扱いがわからない。【101日目】

問題のプログラム php > echo memory_get_usage(); 350552 php > class A { php { public $number = 10; php { } php > echo memory_get_usage(); 351040 php > $a = new A(); php > echo memory_get_usage(); 351096 php > $b = new A(); php > echo memory…

PHPの参照渡しのメモ【99日目】

参照サイト PHP: リファレンスとは? - Manual PHP: リファレンス渡し - Manual 伝える内容候補 極力参照渡しでメソッド作らない方が良い 普通のメソッドは、値を直接書き換えてるわけじゃないよ。コピーを使ってるんだよ。 メモリの存在←ここまで説明すると…

PHPの$a=$bが、$aをreturnしているのを調べよう【97日目】

導入のきっかけ willow710kut.hatenablog.com なので、=が関数なら、何をreturnしてるか調べようってお話 書いたプログラム $a = 0; var_dump($a); var_dump($b); var_dump($a = $b); var_dump($a); var_dump($b); var_dump($a = $a); var_dump($a = $b = $c…

PHPの==とか=って実際何してるんだろう【96日目】

演算子だってプログラム 何気なく書いてる+や=ってありますが、これって何をしてるのでしょう。 プログラムによって仕様が違うわけで。 そこで先輩に教えていただいた言葉。 『“演算子“とは全てただの関数である』 あーなるほど、引数が2つあって、関数が動…

PHPとswiftの『switch』の挙動の違い【91日目】

switchのbreakって邪魔ですよね。 phpやjavaのswitch文って、 基本的にbreak使ってcase内の内容だけを実行させるけど、 swiftはbreak要らないんだね! あとkotlinはwhenって形式だとbreak要らないみたい! 同じ名前でも違う挙動するんだねー ってことでコー…

LaravelのsortByとorderByの使い所【84日目】

sortByとorderByの違いって? sortBy()の使い所は、コレクションをソートする時に使います。 orderBy()はwhere()とかと同じで、データベースから取得する時に使います。 使い方の違い $query->get()->sortBy('id'); $query->orderBy('id')->get(); この2つの…

配列の中に配列が入っている時のforeach書き方2つ【83日目】

普通ならこうだし、これでも良いんだけど foreach($array as $items) { echo 'first: ' . $items[0] . PHP_EOL; echo 'second: ' . $items[1] . PHP_EOL; } こんな書き方もあるよ foreach($array as list($a, $b)) { echo 'first: ' . $a . PHP_EOL; echo 's…

Laravelで『ページ3』や『次へ』や『前へ』というページネーションの作り方【77日目】

参考 ペジネーション 5.1 Laravel 手順 ControllerでpaginateをつかってDBからデータ取得。 Viewでrenderで呼び出す(renderは{!! !!}のカッコで囲むこと) コード public function index() { $users = DB::table('users')->paginate(15); return view('user.i…

DBのデータを変形させて$model->valueで取るミューテター【76日目】

参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public function getFirstNameAttribute($value) { //最初の文字を大文字にして返す re…

PHPで二重for文を抜ける方法【74日目】

前回の記事 willow710kut.hatenablog.com 前回の問題 1.while (true) { 2. echo "1\n"; 3. while (true) { 4. echo "2\n"; 5. while (true) { 6. echo "3\n"; 7. [?????] 8. } 9. echo "2 end\n"; 10. break 1; 11. } 12. echo "3 end\n"; 13. break 1; 14.}…

【出題編1】PHPで二重for文を抜ける方法【73日目】

クイズ形式の試み。 クイズ形式で出題して、後日回答の参考になる記事を書くテスト 1.while (true) { 2. echo "1\n"; 3. while (true) { 4. echo "2\n"; 5. while (true) { 6. echo "3\n"; 7. [?????] 8. } 9. echo "2 end\n"; 10. break 1; 11. } 12. echo …

Laravelで多対多のリレーションを組む【71日目】

多対多とは ある人は、いくつかのグループに所属しています。 あるグループは、いくつかの人で構成されてます。 これが多対多です。お互いが複数の対象を持ってますね。 これをデータベースで表現すると、中間テーブルと言うものが必要です。 データベースだ…

Laravelでリレーション先のカラムでwhereする方法【68日目】

参照元 Eloquent:リレーション 5.1 Laravel 手法 $posts = Post::whereHas('user', function ($query) { $query->where('name', 'uirou'); })->get(); これでuserのnameがuirouのPostを取得することが出来ます。 前回間違ったものを書いたので訂正。 日記 …

(仮)Laravelでリレーション先のカラムでwhereする方法【66日目】

参照元 Eloquent:リレーション 5.1 Laravel 手法 $users = App\User::with(['posts' => function ($query) { $query->where('id', 10); }])->get(); これで、postsのid = 10を書き込んだユーザーが取り出せる。 思いっきり間違えてました。正しくはこちら。…

Laravelで過去に詰まった点を穴開き形式でまとめ。

はじめに これは Laravel Advent Calendar 2017 12日目の記事です。 前日は@kawaxさんの1コントローラー1アクション - Qiitaでした。 Web系来てまだ半年の私なので、コントローラーの肥大化は何度も経験してるのに、どう変えればいいのかわからない…… 一度振…

任意のClassに書いた定数を、bladeから呼び出す【52日目】

今日どう書くっけってなった {{ App\Models\A::NUMBER }}</div> ネタメモ インスタンス化$instance = app(App\Models\A::class) インスタンス比較$instance instanceof App\Models\A::class こんな書き方だった気がする。 日記 うろ覚えで書きました。間違ってたら…

Laravelで間違ったルートにアクセスした時の処理を追加【49日目】

LaravelのAdvent Calender始まりましたね qiita.com 早速記事を引用します。 パクリのつもりじゃなくて、面白かったので引用・・・! フォールバックルートと言うらしい どのルートにもマッチしない URL にアクセスされた場合、通常は NotFoundHttpException…

Laravelの名前付きルートの書き方【48日目】

ドキュメント ルーティング 5.5 Laravel 例 Route::get('list/{id}/test', exController@getTest)->name('test'); $url = route('test', ['id' => 1]); routeのnameでつけた名前を使うと、こんな感じに簡単に使える。 $urlには、'/list/1/test'というURLが生…

Laravelで『MVC』の『VC』を再勉強してみる part2【43日目】

前回はこちら willow710kut.hatenablog.com ControllerからViewに値を渡そうという話です。 ControllerでViewにデータを渡してみる return view('pc.Top.index');を書き換えます。 return view('pc.Top.index', compact('name','list')); return view('pc.To…

Laravelで『MVC』の『VC』を再勉強してみる part1【42日目】

MVCモデルとは 詳しくは調べてみてください・・・ この日記は、MVCを少しずつ追っていくお話です。 MVCの基本は Model View Controller の3つでプログラム構成しようってお話です。 これを少しずつ見て見直そうというお話なので、 今回はViewとControllerし…

【PHP】正規表現vs複数関数 速度テストしてみた【40日目】

注意 この記事は、正規表現が優れているor優れていないを ジャッジするため記事ではありません。 ただ、友人達とある問題を解決しようとして試行錯誤した記録です。 そしていつもより記事長いです。 発端は友人Aが実装案を求めた話 pathinfoで拡張子取ろうと…

PHPの文字列をヒアドキュメント構文で見やすく記述【31日目】

参考 PHP: 文字列 - Manual php-manual.necomori.asia ヒアドキュメント構文って? こんなの 出力 私の名前はういろうです。 こんな感じに長文を書けます。 連結文字やダブルクオーテーション使わなくて良いんです。 {}以外でも指定出来る ダブルクオーテー…

Laradockを使ってみるよ!(見やすく、説明少なめ)【30日目】

参考サイト liginc.co.jp qiita.com 前提 Docker for mac sudo apachectl stopをしてる(macのデフォルトのApacheを切る) コマンドリスト 1.ディレクトリ+laradock導入 mkdir try_laradock cd try_laradock git clone https://github.com/LaraDock/laradock…

Laravelでコメント欄に@extendsを書いてもコメント扱いにならない!?【28日目】

出会いは突然でした。 エラーが出てなぜ動かないんだろう?ってなっていたら、コメントを全部消すと動いたー! ってそんなわけあるかい!!!ってなって条件を試してたら、どうやら@extendsが原因っぽい? エラーの原因は不完全な@extends {-- @extendsは○○…

Laravelでfillableかguardedを設定して、DBの予期せぬ変化に備える【24日目】

今日の題材 qiita.com qiita.com DBで書き換えたくない値を保護しよう DBのカラムで、この値は書き換えたくない、 ってカラムがあると思います。idとか。 それを保護するために、fillableやguardedを設定します。 どちらか片方を設定します。 ホワイトリスト…

extendsの継承とは違う、平行継承『Trait』【20日目】

親子関係を結ばない、横継承 sssslide.com PHPこんなんあるんですね。 普通の継承だと、extendsで、一個だけ親を決めるとかですけど、 これはuseで指定したら色々継承出来るやつです。 class Child extends Parent { } これが class Child { use Trait; } み…

ハロウィンにCarbonのsubMonthにいたずらされた【19日目】

それはハロウィンの夜に起こった 私の作ったプログラムがエラー出してる。 え、あんなに私テストしたのに!? エラーの再現も、そうみてもテストした内容なのに、どうして今更エラー・・・? 日付周りの問題でした PHP上で日付の操作のために、 Carbonを使っ…