はじめに
慣れている人にとっては、「別に」だけど、初心者や業務で全く使わない人が
チャレンジした時に「ゴリゴリに書いているあの処理」の場所にどうやっても行きつかない。
というかH1タグに書いた「hello world」だけしか表示されない。
そんな経験はないだろうか?
そんな間違いやすかった点を幾つかまとめてみた。
さほど年齢も重ねていないのに「仕事に関係ないし、やったことのない事は若いもんに任せて(丸投げして)」という人をチラホラ見かける。
(というか私より年下だよね?みたいな人達もいる)
そんなことを言っていいのは[人生50年...]という名台詞を残した織田信長だけだ
と密かにおもっている。
初心者中の初心者の小さな気づきを残そうと思う。
1.開始タグ<?php
どうしても、実行したい処理があったのだけど、実行しない。
確か
if($i==0){
//なんかの長い表示
//セレクトボックスやテキストボックスなどいろいろ配置
}else{
//重要な処理
}
みたいな雰囲気だったと思う。
どうやってもelseの処理にたどり着けない。
elseの処理だけ切り出してみても通らない。
悪さをしていたのはelseの前に、鎮座していた存在でした。
↓これです。
<php?
「?とphpの位置が逆だったのです!!」
2.文字列置換関数str_replace
誰もが遭遇する全角スペース。
入力欄にこいつが出てくるとウザイ。
空白なんだから、はじいて登録できないようにしたい。
便利なtrimで一発削除できないニクイ奴。
丁度下記のような状況だ。
\$tmpstr=" ";(全角スペース2個)
これは、全角スペースを半角スペースに変換して、trimした後に、空文字判定
すればいいんじゃね?
空文字ならはじくと。。。
\$tmpstr2=trim(str_replace($tmpstr," "," "));ーー(1)
その結果、なんと$tmpstrに全角スペースや連続した半角スペースが入ってきても、
ちゃんとはじいてくれるようになったんです!!!
ところが、\$tmpstr="abc"でもはじく。
使用例を詳しく見ると。。。
「str_replace("置換前文字列","置換後文字列","検索対象文字列")」
という衝撃的なことがわかった。
つまりあれです。
(1)は半角スペースの中に$tmpstrが含まれていれば、全角スペースに変換する
という呪文だったのです。
3.$_POST["名前"]が未定義!?
正確には、
\$val0=\$_POST["名前"];
と書いた$val0がUndefined variableと表示されたのですが。
時間ができたので、久しぶりにプログラムを書いていた。
幾つかしょぼい画面遷移をして、終盤に差し掛かったころだ。
$_POST["btn1"]が未定義ですみたいなことが表示される。
その変数を別変数に置き換えて加工した場所もエラーが出ている。
嘘だろー、前画面から引っ張ってきてるし。
遷移元のプログラムを見る。
<form action="xxxx1111.php" method="post">
<input type="hidden" name="btn11" value="<?=$ret0?>"><---あっ!!!
<input type="submit" value="確定">
そうです。
ボタン名の打ち間違いです。。。
【皆さんは、ボタン名にhidden属性使って、取得しようとしていたりしていませんか?そんな時に使う
前画面のボタン名の確認はしていますか?】
以上3つの気付きでした。