SSブログ

PHPってデバッグでブレークとかステップ実行できたんだ。 [プログラミング]

以前、VSCodeとXdebugを使ってステップ実行をしたり、ブレークを張ったりしてデバッグできていたことを確認しました。そこそこ手こずったけれど、問題なく変数の中身とかを見ることができたと思います。

メンテしているPHPのシステムの環境が古くて、VSCodeの範囲外だったのですが、使っていたEclipseでもXdebugを使ってブレークを張ったりできました。なんだよー、使えるならはよ言ってくれないとな~。

Eclipseをファイルがツリー表示にできて、ソースを文字コード対応してGrep検索ができるくらいにしか使っていなかったよ。Tabを使っているとインデントが崩れるしいいことないと思っていたけどそうでもないかな。というかTabの表示だけでもしっかりしてくれればまともになるんだけどな…。明らかに害になっているので。

細かいところは事前に用意されていたので、Eclipseの設定いかんだったのですが、まぁそこそこ使える感じではありました。いちから設定するのは少々しんどいかもなぁ。下記などの設定を見てやってください。

https://qiita.com/twinblack/items/2b112441e0753cd5e6c2
https://rensrv.com/wp/xdebug/install-xdebug-on-eclipse/

自分のところでなかなか動かなかったので、ちょっと参考にしてみました。

というかPHPのEclipseってあったんだとちょっと感心した。GPGPUの時にmakeファイルを使っていたので、C/C++用のEclipse使っていたんだけど、そこそこ楽できましたね。やっぱりGUIからパソコンに入った人なので、IDEがあると安心する。まぁviとコマンドラインとかでもいいんだけど、デバッグとかはGUIでやりたいよね。


変数の中身はボックスに指定してあげないといけないと思いきや、ソースの上の変数にマウスを乗せると、ポップアップしてくるのでたくさんのデータじゃなければそれでOK。ゴロゴロたくさん配列が出てくるような奴は、改めて変数名をコピペして変数用のペインで見ればいいのでしょう。




それまではprint_r()やvar_dump()の嵐で後から消すのも面倒だったのですが、PHPの罠にかかっていたのを書いておいた方がいいかなと思ったので書いておきます。

$test_array
という配列の中身を見ようとして、単純に
print_r($test_array);

とすればよかったのですが、

他の出力とくっつくのが嫌だったので
print_r($test_array . "\n");

としていたのでした。

これだと"\n"の文字列に引きずられて、文字列型にキャストされて、配列の中身が出てきません。実際出るのはArray\nという文字列になってしまいます。さらにその場だけでキャストが終わるのではなく、後を引きずって$test_arrayが"Array"という文字列になってしまうという罠がありました。なんかよくわからん仕様ですが、PHPはそういうものらしいのです。正直意味わかんないです。他の言語を使っていてにわかに信じがたいことであったりしました。

PHPは言語的にバグの元や罠になる言語仕様が盛り沢山なので、使うことになった人は言語仕様と合わせて事前に調べておいた方がいいですよね。配列の添字というかkey,valueのkeyのキャストとかもかなりやばい感じではあります。変数のスコープとキャストに関してはバグを招く仕様になっているので、今後も使われるであろうPHPには気をつけた方がいいですね。


できればvar_dump、print_r、echoなどは使わなければそれに越したことはない。のでGUIなデバッガは動いてしまえばお手軽なので積極的に使いましょう、ということで。他の言語でprintfデバッグ的なことやってるのあんまりないですし。個人的には少しやったりはするかもしれないですが…。

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

Twitterまとめ投稿 2020/02/22 [Twitter]


コメント(0) 

Twitterまとめ投稿 2020/02/21 [Twitter]


コメント(0) 

ネットで、毛ー生やすのと、痩せるCM、どうでもいいわ。 [web]

いい加減うんざりするんだけど、毛を生やすのと、痩せるのと、シワ伸ばすCMがウザい。なんかそんなバナーをクリックする人なんてほとんどいないと思うんだけど、それでも広告主は出すんだよな。

ヨドバシは個人のアフィリエイトをやらずに、Googleに閲覧した商品に関係する商品を並べたバナーを出す。一回買ったものが多いから、ほとんど意味がないのだけれど、ヨドバシはそれはそれで広告効果があるんだろうと思っているらしい。そこそこ見かけるので、クッキーとかと連動させているのかもしれないですね。


アフィリエイトといえばAmazonですが、バナーが使いにくくてほとんど使っていません。以前くるくるウィジェットというFlashを使ったバナーが使い勝手が良かったのですが、ご存知の通りFlashは死んだのでもう使えません。HTML5で実装しなおせばいいのだけれど、それをしてくれない。

基本的にAmazonはアメリカ本土の法人は技術バリバリだけど、日本のは基本的にアメリカのシステムを使っているだけっぽいしね。外注に出すにも金がかかるからやらないのだろう。

とりあえず、くるくるウィジェットじゃなくていいから、あるカテゴリのベストセラーを出すウィジェットが欲しいんだけど、基本的にそれはないようだ。自分で商品を選んで並べることはできるんだけど、勝手に配信してくれるものは無くなったみたいだ。というか、それまでのシステムがもったいないだろうと思うんだけど、フロントエンドのシステムを作れなくて既存のシステムが無駄になるとかなくない?

たぶん、商品のベストセラーを一覧に出してくれるウィジェットはない。なんでないのかわからんし、あったらアフィ的じゃなく自分の購買的にも使いやすいんだけど、日本のAmazonはそれをやってくれない。Amazonは中国人などの不正レビューは野放しだし、楽天よりかはマシでも良い顧客体験を提供しているとはいえない。それならやっぱりヨドバシで買って、無いものはAmazonでって話になる。まぁそれでもいいんだけど、天下のAmazonがそんな感じなのは非常に残念ではある。


一時期アフィリエイトで副業イェーみたいなことを言っていたけど、Amazonの送料無料がなくなったあたりで一気に萎んでしまった感がある。金儲け系は最初の方にやった場合はそこそこ儲けられるけど、みんながやり始めると途端にダメになる傾向がある。そもそもFXみたいに負けるのを前提とした金儲けとかなら仕方ないと思うけど、ある程度努力とノウハウが必要というのは結局普通に仕事しているのと変わらんしな…。


コメント(0) 
共通テーマ:日記・雑感

ドラクエウォークも少し飽きてきたな… [ソフトウェア]

これがブログに上がる頃は、あくま大王イベントも終わってるかもしれないですが、前のメタルフェスの話。メタル系が湧いて出たフェスですが、今となっては経験の珠を使った方が良かったのかなと思ったりしています。あれは通常戦闘なのかよくわからないですが、少なくとも週末メタルよりも見込みはあった。週末のはダンジョンで、経験の珠使っても影響なかったからねぇ。

まぁそれまで地道に多くの職業のレベルを上げている人向きで、それまで手を抜いてまったりしていた人には、一つの職業をレベル50にするのが精一杯でした。それにしても、はぐれメタルがバンバン出てきて、そこそこ倒せてかなりレベルが上がったのですが、その後の上がりにくさが際立ってしまう結果に。

週末に経験値を上げる方策をしているようですが、いまいち上手くいっていないです。というか、休みの日はやらないんですよね、外でない。基本、バスに乗って、回復スポットでイベントメダルを取って、それでふくびき券をゲットして、マイレージでふくびき券を補填して、10連を引く、というのが固まっている感じです。それで出なかったらそこそこジェムで引く程度。なので星5装備は全体に行き渡っていません。


それとなんかうれしいけどちょっと怖いふくびき。Twitterで書いたんだけど、なぜかまだやっていたドラクエ4ふくびきなんですが、気が向いて引いてみたら10連で4つも星5が出たのでした。その後全然出ないということがありそうで、引きが良すぎるのもあんまり気持ちの良いものではないなと思ったり。



今のところ10連を二回して星5なしです。まぁ確率的にはあっているかもしれない。というか、パチンコにしても確率ってのはどうやって規定しているのかよくわからないですね。かなりきっちりレギュレーションしているみたいですが、確率を確かなものにするってのはランダムの確率ではなくなっている気はする。

射幸性を煽りがちなドラクエウォークですが、いまだに金をかけないで済ましているのは小学生とかぐらいなのかなと思ったりもする。というか、基本的に人生の引きが悪いので、星5でもイベント装備が手に入りにくいんじゃないかな…。前向きじゃないとギャンブルはできないよなぁ。

コメント(0) 
共通テーマ:ゲーム

Twitterまとめ投稿 2020/02/20 [Twitter]


コメント(0) 

Twitterまとめ投稿 2020/02/19 [Twitter]


コメント(0) 

Twitterまとめ投稿 2020/02/18 [Twitter]


コメント(0) 

中国マネーが世界を蝕む。 [徒然]

最近、テレビで新型コロナウイルスばかりで正直つまらない。まぁ大事なのはわかるけど、毎日のようにダラダラやられるとすごくしんどい。

コロナウイルスでNHKが特集を組んでいましたが、それはまとまっていて面白かった。WHOの事務総長と中国の癒着による喧伝もやっていて、そういうのを知らなくてWHOが中国の対応の悪さをなぜか高評価していた理由もわかった。

https://news.yahoo.co.jp/byline/endohomare/20200131-00161213/

テドロス事務局長のエチオピアに中国マネーが流れていて、習近平を称賛しなければならなかったということであった。


日本でもカジノ肯定法であるIR法案に関わる人たちが、中国資本から裏金をもらっていたことが発覚して、中国マネーは世界を腐らせているのがはっきりした。

ただでさえ、海洋に進出したりウイグルの人たちを弾圧したり国内外で問題だったが、アフリカを買い漁ったり、通信で不正をして支配しようとしたり、本当に面倒なことしかしない国である。

それにしても、金などの富は国や人間を容易に動かしてしまうものなのだなと暗澹たる気持ちになる。別にそれをしてもいいんだけど、人を蹂躙してまで優位に立ちたい意味がよくわからない。まぁ世界一になりたいのはわかるけど、基本的に倫理がない人々がそれをやってしまうとみんなが困ることになるよね。

コメント(0) 
共通テーマ:ニュース

Twitterまとめ投稿 2020/02/17 [Twitter]


コメント(0)