実践でPHPを習得しよう企画、3日目。企画はいま思いついたけど、3日前からやっているから、3日目。
PEARでインストールしたライブラリを眺めていると、見たことのない記法を発見。
if (file_exists($filename)) {
@unlink($filename);
}
関数名の頭にある@(アットマーク)は、PHP特有のエラー制御演算子というものらしい。これを書くと、その処理内でエラーがあっても出力されなくなる。なるほど、ライブラリに余計なエラーログを吐かれるのは迷惑ってことか。
詳細はPHPマニュアルを参照。
関数名とかじゃなく、式全般で使えるのね。でも、通常の開発では使うことは無さそう。ライブラリでエラーが出たときに、この@演算子を外すばエラー詳細を確認できるというノウハウってところでしょうか。
演算子でつまづくとは、習得の道のりは険しい。
Posted by dT by 14:17 | Comments (0) | TrackBacks (0)
DreamWeaverでファイルを新規作成すると、何かしらコードが書かれている。でも大体がゴミみたいなもんで、使えない。ということで変更する方法。
C:\Program Files\Macromedia\Dreamweaver 8\Configuration\DocumentTypes
上記のように、DreamWeaverをインストールしたディレクトリ以下の Configuration → DocumentTypes フォルダ内に、デフォルト表示用ファイルが置いてある。これを編集すればOK。
ファイル作成時に書くことは、大体決まっていて、それをデフォルトで表示するようにしておけば、業務効率がアップすること間違いなし。少なくともコピペするよりは楽。
サイトごとにデフォルトを変えらると、さらに便利なんだけどねえ。
Posted by dT by 14:27 | Comments (0) | TrackBacks (0)
PHPでクラスをnewするときのアレの話。
$foo = new FooClass(); $bar =& new BarClass();
ずっと下のやり方で書いてきたのだけど、よく考えてみると理由があいまい。参照を明示するメリットってなんだろう。「みんな、そう書いているし、これがPHPの文化なのかな」とか、郷に入っては郷ひろみ的発想で流していた。
まあ、結論としては
1. 参照を返す関数から参照を受け取り、セットする場合は「=&」を用いること。
2. クラスをnewするときも「=&」すること。
がPHP4での注意点となります。
PHP5だと、そもそもオブジェクトは参照渡しが基本なんで、そりゃメリットも感じないか。まあ、でもスゴイ勉強になった。PHP4をやるときに、参照渡しを肝に命ずる次第っす。ありがとうございます。
Posted by dT by 23:16 | Comments (0) | TrackBacks (0)
DreamWeaverで構築したサイトのソースが汚いので、5分くらいでクリーンアップするshを書いてみた。あとで汎用性あるように、改造するために、ここにメモ。
#!/bin/sh
echo 'remove Templates directory' rm -Rf Templates/
for FILE in `find . -name '*.html' -print` do echo ${FILE} while true do COUNT=`grep '<!-- Instance' ${FILE} | wc -l` if [ ${COUNT} -eq 0 ]; then break; fi perl -pe 's/<!-- Instance.*? -->//' ${FILE} > ${FILE}.$$ mv ${FILE}.$$ ${FILE} done done
exit
DreamWeaver自体にもソースのクリーンアップとか機能があるらしいんだけど、テンプレートから切り離したりしなくちゃいけないんで、面倒らしい。そこらへんDreamWeaver使いじゃないので、よく分からない。正攻法を調べる時間もなかったので、全部サーバに上げてもらって、shスクリプトで処理した次第。
DreamWeaverぐらいのソフトになれば、これ以上のことを、コマンド一発でやれそうな気がするのだけど。知っている人いたら、教えてくださいまし。
Posted by dT by 14:50 | Comments (0) | TrackBacks (0)