SSブログ

PHP界隈を調べてると悪手なんじゃというコードが結構出てくる。 [プログラミング]

PHPがバカにされているという話があって前にも話しましたが、初心者用のページを見てきた。printとかechoで文字表示ができるのかとかそういう初歩から。<?phpで<?とphpの間にスペースを入れては動かないとかそういうところから。良くも悪くも実行時にエラーが出ないから、書いた通りに動いているかきちんと見ないとバグが混入しそう。

お勉強はPHP、入門でググったら出てきたところを見てみている。
https://www.scollabo.com/banban/php/index.html
ちと古いかもしれないが、一通りのことは書いてありそうなのでそれに沿ってやってみている。



文字列の改行について少し気になった。
https://qiita.com/sola-msr/items/0814c4470dcbbd1f5ec3
' 'じゃなく、" "で括って、\nを入れれば反映される。確かにHTMLソースに反映されるけど、HTMLの最終的な表示はタグで示すもんだから、あんま意味ない気がするんだよね。

だから自分はpタグで囲んでみたりした。pタグなんて今時使わんのかな? 今時のHTMLがよくわからんのでなんとも言えないけど、あんまりpタグは見ない気がする。


さらに悪手だと思ったのがbrタグを入れろというやつ。
https://techacademy.jp/magazine/11564
確かにbrタグは改行を入れるためのものだが、HTMLの初歩の初歩としてあまりbrタグは使わないという一般的な常識があったはずです。確かにbr/とスラッシュさえ入れない時代は多用されていましたが、CSSが一般的になった時代としては他のタグを使うのが一般的なはずです。

でも上のサイトではbrタグを入れようと入門者に悪習を植え付けています。よくバカにするコードでbrタグで改行を多用するものがありましたが、今時それを推奨するのはどうかと思うのです。PHP使いをバカにしている人も多いし、プログラマとしての平均レベルが低いのも否めないですが、最初からこういう情報が出ているとお作法も何もないんじゃないかと思ってしまいます。

にしても、nl2br( )という関数自体もそれに拍車をかけている気はします。効率的にコーディングするという点ではいいのかも知れませんが、やっていることと言ったら\nをbrタグに置換してるだけのような気もしますし。まだブログで改行を入れたいとかなら手当的に入れるのはわかるんだけど、恒常的に使うものではないんじゃないかと思う。ダメではないが悪手である、ということに割とプログラマは敏感だし、初心者はそれを分からずにやるから後ろ指指されるわけだ。


ってこんなところで詰まっているわけにはいかない。ただ少しのタイポでエラーが出るのは他の言語と同じことだけど、表面上のエラーがHTMLに出てくるわけじゃないので、そこだけは注意しておかないといけないっぽい。まぁphpでエラーが出るとページがブランクになるっぽいので普通は気付くんですけどね。ただデバッガも何もないので、途中でブレーク張って変数の中身を見てみるということはしにくそうではある。

POSTは受け取れた。当然だけど基本動作は同じで
$_POST['なんとか']

で受け取れる。中でゴニョゴニョできそう。


ん?関数の後のスペースは入れても入れなくても動く? そこはユルいのね。

定数はdefine( )で。ソースがでかくならない限り、あまり必要性を感じない。

変数は宣言時も後の利用時も$を入れないといけないのか。まぁ一貫性があるのかも知れないけど、$は個人的にあまり打ちたいとは思わない。だけど、言語上そうなっているから仕方ない。

行末にコメントを//で入れられるけど、;の後にスペース入れられない。スペースの扱いの一貫性のなさが身にしみる。(スペースが全角スペースだったようだ。というか、最近のエディタって全角スペースは意図的に表示されないのな)

booleanもintegerもfloatもある。そこのところは普通のプログラム言語みたいだw。

文字列型は当然あるとして、文字数は無制限と誇っているサイトがあったが、言語として普通はそうではないのか? ダブルでもシングルでもコーテーションが使えるのは他の言語とかと一緒だが、エスケープ処理とかができたりできなかったりするのかな?


しかし
https://www.scollabo.com/banban/php/php_04.html
にある
  <?php
  $a = 100;
  $b = "123はいちにぃさん";
  $c = $a + $b;
      print($c);
  ?>

で223が出るのは気持ち悪いな。どういう状態を考慮して言語にまで組み入れられたのか、皆目見当がつかない。これが有効になる場面って多くないと思うんだけど、文字列連結しようとしたら数値計算してましたとか意味不明な挙動が出るだけだと思うんだけど。

ちなみに普通に文字列を連結しようとしたら、+のところを.に変えればよかった。そうそう、事前に知っていたのでわかったんだけど、文字列の連結は+(足す)じゃなくて.(ドット)なんだよね。たぶんPerlとかもそうじゃなかったっけ。そこも気持ち悪っw


変数は数字を先頭にしてはいけなくて、先頭には英字とアンダーバーが使えるらしい。そこいらは比較的まともかな? 日本語も使えると書いてあるが使わない方がいいだろうな。面倒が増えるだけだ。先にも言ったけど変数宣言時も次回使用時も$を付けないといけないのはしんどいな。それにタイポでいきなり変数を初期化せずに使ってもインタプリタはなんも文句言わないし。

次は配列なんだけど、今日はツッコミ疲れたので終わりにする。ちょっとPHPを見たところ、厳密なんだかユルいんだかよく分からん言語という印象でした。まぁ仕事で使うと確定したわけじゃないし、軽く全体を見ておく体で。いつDB連携までたどり着けるかな〜。

タグ:PHP
コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2019/11/25 [Twitter]


コメント(0)