【PHP8】もう`strpos($haystack, $needle)!==false`って書かなくていいんだ
ある文字列中に特定の文字列が存在するかを調べる方法としてstrposが存在します。しかし、そもそもstrposは『ある文字列中で特定の文字列が何文字目に出てくるか』を調べる関数であり、第一に使用目的が異なる関数です。そしてこちらも有名な話ですが、先頭が一致すると0が返ってくるので、緩やかな比較ではfalseと区別されません。...
View Article【MDN】非同期JavaScriptの紹介
MDNに非同期 JavaScriptという学習項目があるのですが、目次以外は日本語がありません。ということで以下はIntroducing asynchronous JavaScript項目の日本語訳です。Introducing asynchronous...
View Article【問題提起】マイクロソフト社の機械翻訳フィードバック対応はやはりおかしい
まず問題の翻訳を見てほしいコーディング規則 - Visual Basic | Microsoft DocsIsNot キーワードの使用英語Use the IsNot keyword instead of Not...Is Nothing.自動翻訳(誤訳)IsNot の代わりに Not...Is Nothing キーワードを使用します。イベント処理英語Use Handles rather than...
View Article【PHP8.0】gettypeとget_classの悪魔合体
ワレハget_debug_type、コンゴトモヨロシク…PHPにはプリミティブ型名を取得するgettypeと、オブジェクトのクラス名を返すget_classという関数が存在します。_があったりなかったりと命名の不統一も気になりますが、それよりgettypeはオブジェクトに使うとobjectしか返さず、get_classをプリミティブ型に使うとE_WARNINGが発生します。いや、プリミティブ型であれ...
View Article2000円のガラケーで快適にWebを表示する技術
PWA?SPA?WebAssembly?うん、そうだね、よかったね。それで、そのページは携帯で見れるのかい?以下はAddy Osmani( Twitter / GitHub / Facebook / HP )による記事、Loading web pages fast on a $20 feature...
View Article【PHP8.0】throw文がthrow式になる
throw expressionというRFCが投票中です。最初のアイデアは2019/12/06のSebastiaan Andewegによるツイート。Really liking the arrow functions in PHP 7.4 so far! Unfortunately already found one missing feature: you can't throw...
View Article【PHP8.0?】PHPに名前付き引数が実装されるかもしれない
PHPのソースを眺めていたら、先日2020/04/07にNikitaがなんか面白そうなプルリクを出していました。Named Parametersという2013年に提出されたまま忘れ去られたRFCがあるのですが、その機能を実装したものです。どういう機能ってこういうのです。functionhoge($foo,$bar){echo"foo=$foo,...
View Article【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる
Attributes v2というRFCが投票中です。投票期間は2020/05/04まで、投票者の2/3の賛成で受理されます。 2020/04/27時点では賛成48反対1で、ほぼ間違いなく可決されます。Attributes...
View Article【PHP8.0】StartsWith/EndsWithがPHP本体に実装される
先日PHP8でstr_containsが導入されることが決まったばかりですが、さらにもっと直接的な『〇〇で始まる』『〇〇で終わる』関数までも導入されることになりました。Add str_starts_with() and str_ends_with() functionsというRFCが投票中です。 2020/05/04時点では賛成50反対4で、ほぼ導入確定です。PHP RFC: Add...
View Article【PHP8.0】なんでもあり型が書けるようになる
ジェネリクスではない…ジェネリクスではないのだよ………ざっくり言うとvar_dump()の型引数です。 var_dumpにはプリミティブ値にオブジェクトにリソース型にと、どんな値でも渡すことができるのですが、PHP7.4時点の型システムではvar_dumpの引数の型を表すことができません。...
View Articleこれがなくては生きていけないVS Codeエクステンション10選
VisualStudioCodeは大人気なだけあって、有能なエクステンションが次から次へと出てきますね。色々とっかえひっかえ試して遊んでいる人も多いのではないでしょうか。なんかMinecraftのMOD環境構築と同じ空気を感じますね。 (環境ができたところで飽きて遊ばなくなる)まあ一番手っ取り早いのは、既に評価の固まっている手堅いエクステンションを導入することです。ということで以下はSahil...
View Article【PHP8.0】例外をcatchしたいけど何もしたくない
例外をcatchしたいけど何もしたくない。try{foo();}catch(Throwable$e){// 何もしない}何もしないのにわざわざ変数に受け取るのって無駄じゃありませんか?というわけでnon-capturing catchesというRFCが提出されました。PHP RFC: non-capturing...
View Article【PHP8.0】PHPにオブジェクト初期化子が導入される
これまで何度も塩漬けにされたり却下されたりしていたオブジェクト初期化子ですが、ついにPHP8.0で導入されることになりました。オブジェクト初期化子が何かというとこれです。classHOGE{publicfunction__construct(privateint$x){//...
View ArticleYEStifications:Googleの中の人が語る、通知許可プロンプトに関するCrUXの統計レポート
以下は、Googleの中の人であるRick Viscomi( Twitter / GitHub )による記事、YEStifications: Exploring how users engage with notification prompts in the Chrome UX Reportの日本語訳です。YEStifications: Exploring how users engage...
View Article【PHP8】厳密なswitch文ことmatch式が使えるようになる
PHPがよく言われる問題点のひとつとして、switchが曖昧な比較であるということが挙げられます。switch($x){case1:'$xは1だよ';break;case"1":'$xは"1"だよ';break;}case "1"に到達することは決してありません。ということで厳密な比較を用いるswitchことmatch構文のRFCが提出されました。以下はMatch expression...
View Article【PHP8.0】PHPに名前付き引数が実装される
全ぺちぱーが待ち望んでいた機能がついに来まするよ。変な関数functionhoge($foo=null,$bar=false,$baz=0,$qux=''){}こんな関数があったとして、4番目の引数だけ変更したい、他はデフォルトのままでいいという場合、現在のPHPではいちいちデフォルト値を調べて与えないといけません。めんどうhoge(null,false,0,'fuga');この問題解決のために、こ...
View Article【PHP8.0】PHPにヌル安全オペレータが導入される
ユーザの住んでいる国を取得します。しかし、うっかりユーザがnullでした。どうなるでしょう。$user=null;echo$user->address->country??'';PHPのプロパティは元よりnull安全なので、存在しないプロパティだろうがnullだろうがプリミティブ型だろうがいきなりプロパティを取り出せます。取れない場合はE_NOTICEが発生しますが、??を使えば黙殺でき...
View ArticleあなたのCSS力の助けになってくれる素晴らしいWebサイト12選
以下はAman Varma( Twitter / GitHub / stackoverflow / Webサイト )による記事、12 Super websites to help you with your CSS problems ☺の日本語訳です。12 Super websites to help you with your CSS problems...
View Article