メインコンテンツに移動
mattz.xii.jp

Main navigation

  • Home
User account menu
  • ログイン

パンくず

  1. ホーム

phpしか知らないプログラマってさ

By mattz, 2008/05/28

以前にとあるperlスクリプトをphpで書き直すってのをやってもらった訳です。ちょっとそのまんま転載するのは憚られるので、少し変えて掲載します。

if( $str =~ /ABC/ ){
  $flag = 1;
}elsif( $str =~ /DEF/ ){
  $flag = 2;
}elsif( $str =~ /GHI/ ){
  $flag = 3;
}else{
  $flag = 1;
}

要するに、変数$strに"ABC"を含んでたら$flagに1、変数$strに"DEF"を含んでたら$flagに2、変数$strに"GHI"を含んでたら$flagに3、どれでもなかった場合も$flagに1を代入しろ、っつーことです。これをphpに翻訳したA君(仮名)はこういうコードを書いた。

if( strpos( $str, "ABC" )){
  $flag = 1;
}elsif( strpos( $str, "DEF" )){
  $flag = 2;
}elsif( strpos( $str, "GHI" )){
  $flag = 3;
}else{
  $flag = 1;
}

んで、その書き直された方のphpの方のどれでもなかった場合に$flagに代入する値を1じゃなくて0にするねっていう改修を僕がやったんですが、このphpのコードの問題点に気付いてなくてへへぇ簡単簡単とかいって単純にこうやっちゃったもんですから、

}else{
  $flag = 0;
}

バグ作っちゃいましてね。死ね。俺。ちなみに改修前のソースでなぜ問題が起きなかったかというと、$strには"DEF"や"GHI"で始まる文字列が入ってく ることはないんですね。故に、"ABC"で始まる文字列が入ってきたとしてもelseブロックに処理が流れるもんですから結果として$flagには期待通りに1が入 っていたという。

てゆーかなんでpreg_match使わない訳?

てゆーかstrposのオンラインマニュアルにも

警告

この関数は論理値 FALSE を返す可能性がありますが、FALSE として評価される 0 や "" といった値を返す可能性もあります。 詳細については 論理値 の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

て書いてあんだろうがよ、気付けよ、馬鹿。

てゆーかstrposなんか使ったことねーよ。使うなよ。

タグ

  • php
  • perl
前のエントリー次のエントリー

最近のエントリー

  • 俺は野球殿堂博物館を甘く見ていた
  • 2022シーズン セ・パ12球団の総移動距離
  • Drupalを9にあげてみました
  • 2021シーズン セ・パ12球団の総移動距離
  • 登場曲
  • 2020シーズンのセ・パ12球団の総移動距離を調べてみた
  • vagrant + VirtualBoxで構築した仮想ホスト(Cent OS)の.sshフォルダの権限をうっかり変えてしまってvagrant sshできなくなっちゃった時の話
  • STVの呪い
  • 松田 vs 十亀シミュレーター
  • ○●○●○●○●○●○●○

タグ

甲斐谷忍Windowsサナギさん本加藤伸吉内田春菊Twitterセキュリティ野球hideカルネージハートMichael Jackson猫OperaJavaScript音楽塊魂HALCALIおもちゃ12月生まれの少年河合克敏風来のシレンiOS映画皆川亮二いきものがかり仮面ライダーSPIRITSイベントメールお知らせマンガ仲里依紗Excelブログ24のひとみIE6のだめカンタービレCSSお出かけさくらインターネットwebFreeBSDTogetterphp武帝紀コンビニ木村カエラ男女空耳Line RiderOAuthブラウザたむらぱんツモっ子どうぶつの森正規表現FirefoxやきうGoogle写真集平井和正FONtwicliキーボード田中圭一CDChromeNPBCPANゼブラクイーンGoogle+LDR卓球PEACE MAKER吉田戦車雑記ニュースUserCSSオウガ国民クイズ安倍夜郎saku saku施川ユウキ弁護士のくずER岳シャーロック・ホームズスポーツはてなケータイファイターズ琉神マブヤー島本和彦村枝賢一フロマンガ小池一夫とめはねっ!Pythonプログラミング言語Drupal私たちは繁殖している燃えるV三国志pipesUserJSDVD時をかける少女vagrant神聖モテモテ王国安全地帯Dragonfly北方謙三アプリ増田ボルダリング翻訳水滸伝2ちゃんねるbookmarklet石塚真一田辺イエロウレジストリPSP森のテグー倉島圭Tap DefenseYahooウルフガイながいけん検索二ノ宮知子IME日本語ADAMASperlgrep上ってなンボ!!結界師杉元伶一ライブUIlinux井浦秀夫ゲーム小説spamMovable TypeONE OUTS
mattz.xii.jp