php
オブジェクトのコピーはできない? $item = new Item(); $item->value = 1; // コピー? $item2 = $item; $item2->value = 2; この時、$itemと$item2の値はどうなるでしょう? 実は両方一緒 // 2 $item->value; // 2 $item2->value; あれ?なんで? インスタ…
注意 traitの本質とは違います。オブジェクト指向とかも触れません。 ただ、trait使った時に、実際の動きとしてどんな違いが出るかについてのメモ書きになります。 2つのファイル hello.php
なんで起こるの? 比較に数値形式の文字が含まれる場合は、文字列が 数値に変換され PHP: 比較演算子 - Manual 値をテストしてみた >>> "a" == "0" => false >>> "a" == 0 => true >>> "1.0" == "1" => true >>> "1.0" == 1 => true >>> "1.0" === "1" => fa…
こんな時に使う <div class="aaa"> <p class="aaa">aaaaa</p> <img src="/test/img.png"> </div> これの、src部分 /test/img.pngが欲しい。 DomCrawler使ってみよう これ使うと、CSSセレクタ使って取得が出来る。 簡単。見やすい。 ■DomCrawler https://symfony.com/doc/current/components/dom_crawler.html テスト用コード (Lar…
こんな時に使う PHPでオリジナルの404ページを表示させたい。 で、ページが例外に入った時にオリジナルの画面を表示させたけど、 ステータスコードが200で正常に表示されている時。 このコード付け足す header("HTTP/1.1 404 Not Found"); これでステータス…
こんな時に使う (PDO使う時ほぼないというツッコミは置いておいて) $dbh->exec('CREATE TBLE Pages (id int, name nchar(255), create_date datetime)'); あ、 TABLEが TBLEになってる。 でもエラー出てないから気づかなかった・・・ って時に、エラーを投…
こんなファイル作りました public/index.php include ../xxx/yyy/temp.php xxx/yyy/temp.php include ../../zzz/item.php zzz/item.php echo 'hello'; これ、動かないです。 どこが問題か xxx/yyy/temp.php include ../../zzz/item.php これ。単体で見たら問…
引数を入れた時どうなるかも書きました 取得失敗した時の動作が書かれているよ。 willow710kut.hatenablog.com 直前にアクセスしたURL、ページに来るためのリクエスト元のURL こうかく url()->previous(); 結果 "http://blog.hatena.ne.jp/willow710kut" み…
Dockerfile FROM php:7.1-fpm phpファイル $dbh = new PDO('mysql:host=mysqlaaa;dbname=dbname', 'username', 'password); エラー could not find driver 対処法 RUN docker-php-ext-install pdo_mysqlの一文をDockerfileに付け足す FROM php:7.1-fpm RUN d…
こんな書き方あるよ Route::group(['namespace' => 'Admin'], function () { // "App\Http\Controllers\Admin"名前空間下のコントローラ }); 何が嬉しいの? App\Http\Controllers\Admin\SomeController.php App\Http\Controllers\Admin\AnyController.php A…
ちょっと間違えていたので こちらの方で内容を変えて書いています。こちらもご参考に www.nyamucoro.com null合体演算子とは null合体演算子(A ?? B)は、 Aが nullや undefinedの時に、Bを出力し、 非nullの時にはAを出力するものです。 例がundefinedやnull…
元となる抽象クラス
undefindedの時に、空文字を出したい if (isset($item)) { echo $item; } else { echo ''; } あるいは、三項演算子を使って echo (isset($item) ? $item : '') これをnull 合体演算子 (??)を使って書く null合体演算子 echo ($item ?? ''); 短い。見やすい。…
前提・ゴール nginx等で、強制的にindex.phpを読み込ませる index.phpから、URIに合わせて、別ファイルを読み込ませるのをゴール 手順 ①URIを取得 ②クエリと分ける ③URIに合わせてinclueするファイル分ける 書いたコード index.php(①と②を担当)
基本形 qiita.com Nginx + php-fpmの環境を作ろうとしたらPHPファイルがダウンロードされる utano.jp mcryptをphp7.2でもインストールする方法 blog.apar.jp ぼやき とりあえずわからないところは極力削って環境構築。 わからないままコピペよくない。 一応…
Dockerやってたらmcryptがインストールできない なんでだーってなった。 コマンド間違えてないはずなのに、 /usr/src/php/ext/mcrypt does not exist って出る。なぜだ。 でもきっと私の記述が間違ってるんだ・・・ そう思ってた mcryptはPHP7.1で非推奨、7.…
何が嬉しいの? 擬似乱数を再現可能にすると、 バグとかの再現も出来る。 ドキュメント PHP: mt_srand - Manual PHP: mt_rand - Manual 結論 $seed = 10; mt_srand($seed); echo mt_rand(0, 255); echo mt_rand(0, 255); echo mt_rand(0, 255); mt_srand($se…
配列にバリデーションをかけたい arrayX = [['key' => 10], ['key' => 'aaa']] こんな感じのやつ。 arrayのkeyに対して、数値であるとバリデーションをかけたいやつですね。 公式ドキュメント バリデーション 5.3 Laravel 配列形式のフィールドをバリデーシ…
擬似乱数を作ってみよう! ってことで、すっごく簡単に作ってみよう。 アクセスする時間に応じて、数値を返せば実質乱数じゃね?ってことでプログラム。
苦節3日、無事に出来上がりました。 むしろ3日かかったのかお前っていう。 寝て起きてシャワーを浴びてを2回繰り返したらプログラム出来ました。 注意。 いないと思いますが、このプログラム出来が良くないので、これをコピーしてプログラミング課題の提出…
クイズ swapは2つの値を入れ替える関数です。 swapを実行した後の$x,$yの値は? 例のプログラム $x = 1; $y = 2; swap($x, $y); echo $x; echo $y; swap2($x, $y); echo $x; echo $y; function swap($a, $b) { $temp = $a; $a = $b; $b = $temp; } function …
問題のプログラム 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: リファレンスとは? - Manual PHP: リファレンス渡し - Manual 伝える内容候補 極力参照渡しでメソッド作らない方が良い 普通のメソッドは、値を直接書き換えてるわけじゃないよ。コピーを使ってるんだよ。 メモリの存在←ここまで説明すると…
導入のきっかけ 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…
演算子だってプログラム 何気なく書いてる+や=ってありますが、これって何をしてるのでしょう。 プログラムによって仕様が違うわけで。 そこで先輩に教えていただいた言葉。 『“演算子“とは全てただの関数である』 あーなるほど、引数が2つあって、関数が動…
switchのbreakって邪魔ですよね。 phpやjavaのswitch文って、 基本的にbreak使ってcase内の内容だけを実行させるけど、 swiftはbreak要らないんだね! あとkotlinはwhenって形式だとbreak要らないみたい! 同じ名前でも違う挙動するんだねー ってことでコー…
sortByとorderByの違いって? sortBy()の使い所は、コレクションをソートする時に使います。 orderBy()はwhere()とかと同じで、データベースから取得する時に使います。 使い方の違い $query->get()->sortBy('id'); $query->orderBy('id')->get(); この2つの…
普通ならこうだし、これでも良いんだけど 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…
参考 ペジネーション 5.1 Laravel 手順 ControllerでpaginateをつかってDBからデータ取得。 Viewでrenderで呼び出す(renderは{!! !!}のカッコで囲むこと) コード public function index() { $users = DB::table('users')->paginate(15); return view('user.i…
反対のミューテターに関してはこちらの記事へ willow710kut.hatenablog.com 参考 Eloquent:ミューテター 5.1 Laravel 書き方 class User extends Model { /** * ユーザーのファーストネームを取得 * * @param string $value * @return string */ public fun…