1 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 12:39:39.75 ID:P0iZ4CYt0.net] !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 !extend::vvvvv:1000:512 ★スレ立て時 ↑ が3行以上になるようコピペ PHPに関する質問スレです 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 11 https://mevius.5ch.net/test/read.cgi/tech/1591334726/ 次スレは>>980 以降 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
748 名前:デフォルトの名無しさん mailto:sage [2021/08/10(火) 14:40:11.44 ID:zAxh9PBJ0.net] JavaとJavaScriptの区別がついてない奴がいるらしいぞ。
749 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 13:59:27.76 ID:fZr8mTrx0.net] こんな紛らわしい名前を付けた犯人は誰?
750 名前:PHPerは糞 mailto:sage [2021/08/11(水) 21:04:34.54 ID:C/NScrzP0.net] PHPでの参照渡しの「ノリ」が分からないのだが、どの辺が相場なのだ? なお、 https://tanakahisateru.hatenablog.jp/entry/2013/12/12/012728 は読んだ。これはいい記事だ。 そしてとりあえずコーディングルールを探してみたが、無い。 PSR/WordPress/Zend/Cakeのはさらっと見たが、文法だけで、動作については記述がないようだ。 だから、動作周りも含めての推奨コーディングルールがあればそれを教えてくれると助かる。 DBから読み出してフォーマットしてjsonで出力する場合、一番単純には、 $resultArr = fetch_from_DB(); format_for_API($resultArr); // 参照渡しで自己書き換え echo json_encode($resultArr); function &format_for_API(&$arr){ // ここで何かフォーマット return $arr; // 直上のコードでは必要ないが、直積み(以下)用にreturnしている。 } となる。ただしこのコードは以下の様な直積み echo json_encode(format_for_API(fetch_from_DB())); だと、 Notice: Only variables should be passed by reference が出る。(ただし動く)
751 名前:PHPerは糞 mailto:sage [2021/08/11(水) 21:04:54.72 ID:C/NScrzP0.net] ここで、直積みコードを動かす為には format_for_API を「参照渡し」から「値渡し値返し」に変更する必要が有り、 コードは、 $resultArr = fetch_from_DB(); $resultArr = format_for_API($resultArr); // 再代入 echo json_encode($resultArr); となる。これだと結果としては速度/メモリ共に変化無い。ただし最近の『再代入禁止』には反するので、 $resultArr = fetch_from_DB(); $resultArr_formatted = format_for_API($resultArr); // 別名 echo json_encode($resultArr_formatted); と別名にすると、(今回の俺の場合、速度は大して変わらないが)使用メモリは増えてしまう。 これらから言えるのは、 A. format_for_APIは「参照渡し(参照返し)」が正しいはずだが、何故かNoticeが出されてしまう。 仕様としては、参照渡しに未初期化の変数が渡されたらそこでnull初期化される、ということだから、 直積みでも動くのは正しく、Noticeが過剰なように見える。(ただし以下7とは矛盾) (PHPの構造上 is_ref が変数上にしか持てないのが問題なのだろうが、 そこはボックス化みたく変数化すればいいだけで、このような右辺値を流し込んでいる状況なら危険性はないはず。 実際動いているし。だから何でNoticeなの?となる) B. 同名の変数に再代入する場合は(破棄されることが見えているから)最適化がかかり、問題はない。 C. 別名の変数に保存した場合、元の変数($resultArr)がそれ以降使われない場合でも、破棄されず、最適化がかからない。 結果、メモリを余分に消費する。 これについて、冒頭の記事では「そういう特殊な高級言語だ」と表現されているが、これは当たっている。 クダグダ考えずに「値渡し値返し」でひたすら全部組み上げてもそれなりに動くからだ。 そして昨今の『インミュータブル』で『再代入禁止』なのは下位での変更が上位のコードから見えないからであって、 PHPの場合は「値渡し」でガッツリ保護されているから、 『再代入禁止』『参照透過』何それ美味しいの?でも確かにそれなりに問題ないはず。
752 名前:PHPerは糞 mailto:sage [2021/08/11(水) 21:05:17.28 ID:C/NScrzP0.net] 俺の現環境ではBしか選択肢がないが、ここら辺はPHP界隈ではどうなってるのだ?具体的には、 1. 理想的にはAでNoticeが削除されるべきだが、既にそうなってる/これから削除予定か? 2. (知らんが、)実はPHPって一つのコードで出来てて、「おま環」ってのがあまり無く、 俺の環境でBが最適化されてれば、どの環境に持って行っても最適化されてて問題なく動くのか? (これについてJSが悲惨なのはご存じの通り) 3. まさか、notice切ればいいだけだろ、とか言うノリか?(個別に切れるのならこれも有りだが) 4. 最適化を期待して、参照渡しの使用自体を禁止/抑止する方向か? (真に必要な場合以外は使うな等。今回なら上記のように同名の変数に代入すればいいだけだよね、みたいな。) 5. この辺も含めての、文法(見た目)以外のコーディングルールで有名なのが有れば教えてくれ。 6. このPHP流の参照仕様、使い道無いよな?実は冒頭の記事を読んだ当初、 > PHPの参照はいちど変数が参照になってしまうと、二度ともとに戻ることができないので、扱いにくくてやっぱりダメです。 とあるので、参照は変数側に固定で、参照変数を値渡しの関数の引数にしても常に参照渡し、なら、 スゲーカッケー!!!と思って試したが、全くそうじゃなかった。 しかも参照渡しの関数の戻り値を普通に値変数として確保出来るし、「二度ともとに戻ることができない」というのが意味不明。 Cみたいに呼ぶたびに自由に切り替えられることを想定しているのなら、それは過剰で、 (そもそも元々出来たようだがPHP4.1.3で廃止された、というのを見た覚えがあるが、再確認出来ない) 実際はRustみたいに「mutableな変数は最初から決まっているので宣言時に固定する」で問題ない。 だからコピーオンライト(これってPHP.netでは書いてないだろ!今日初めて知ったわ!)で 全部見た目は値渡し値返し、なら、凄く先進的ではあったのだが。 (なお参照の取り扱いは他言語も苦労してて、C++でも失敗してる)
753 名前:PHPerは糞 mailto:sage [2021/08/11(水) 21:05:44.32 ID:C/NScrzP0.net] 7. > リファレンス渡しが想定されているところに、値渡しを行うとエラーになります。 > https://www.php.net/manual/ja/functions.arguments.php ってあるのだが、今回ってこれか?なら動いてはいるがやっぱりアウトなのか? ちなみに直積みになってるのは、元はfetch_from_DBの出力側で format_for_APIしてたのを、 json_encodeの入力側でやるように移動して、結果的に <?= => の間にブッ込まれてるからだ。 まあ色々文句有るんだろうが、それでも答えてやってもいいぞ、って人はよろしく。 一応724の要求どおりにこのスレ内ではコテにしておく。
754 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 21:40:15.37 ID:PueOOWfrM.net] 参照返しも値返しもメモリ使用量差は今日日のメモリ容量から見たらわずかな違いだから気にしなくて良い。 参照返し、値返しを考慮したメモリ省使用量化はクセのあるコードになる。 書いた本人以外が今後保守する場合は、その人にもわかりやすく、ミスさせないためにそういうコードを書かないほうが良い。
755 名前:PHPerは糞 mailto:sage [2021/08/11(水) 22:21:08.32 ID:C/NScrzP0.net] >>739 その記事とかからすると、どうも過度にやってる奴が居るようだが、今回の件は全くそうではないだろ。 むしろ、「値渡しで自己に再代入って、こいつ参照渡し知らない馬鹿だろ!」って、お前らなら突っ込んでくるところだろ。 がまあ、PHP鯖はPCでしかないので大富豪プログラミングでおk、なのは確かにその通りかもな。
756 名前:デフォルトの名無しさん [2021/08/12(木) 00:47:16.96 ID:xG1RPqdX0.net] スクレイピングは逮捕される危険があるって聞いたんだけどマジ?
757 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 01:38:59.56 ID:wrwwe/e30.net] 威力業務妨害の可能性はあるだろう
758 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 02:19:59.04 ID:ZBXe4sG30.net] 被害を受けた事を証明しないとならないぞ
759 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:23:42.11 ID:s+UN3BdM0.net] スクレイピングでは、そのサイトのrobots.txt を遵守する必要がある 初心者がスクレイピングすると、プログラムのバグで無限ループしたりして、 そのサイトを落としてしまう事があるので、超危険! だから、必ずテスト中は、ローカルPC に対して行うこと! 絶対に、本番サーバーに対して、テストしてはいけない Udemy の山浦清透、2021/6 の動画を参照。 PHP で、マイナビ転職をスクレイピングしてる 【作業工程フル公開】エンジニアが30万円案件の制作過程を公開 www.youtube.com/watch?v=tYbVl6N8oxI
760 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 11:52:11.82 ID:ZBXe4sG30.net] 仮に無限ループしたとしても落ちるのはサーバー側に不具合があるからだろ
761 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 12:16:26.88 ID:s+UN3BdM0.net] >>735 Ruby on Rails では、 format.html format.json と書いておけば、 /books/1 にアクセスすれば、HTML を、 /books/1.json にアクセスすれば、JSON を返す jbuilder モジュールでも、JSONを簡単に書ける
762 名前:デフォルトの名無しさん [2021/08/12(木) 14:40:12.42 ID:B1L5o8hM0.net] >>741 >>642 こんな事も人に聞かないと分からんない奴が居るんだな
763 名前:デフォルトの名無しさん [2021/08/12(木) 14:43:21.86 ID:B1L5o8hM0.net] >>745 がサーバ構築した事がない人間なのは分かった
764 名前:デフォルトの名無しさん [2021/08/12(木) 14:52:03.99 ID:B1L5o8hM0.net] >>746 お前も PHPerは糞 おじさんを見習って 名前欄に RUBYガイジ って入れてくんない? PHPerは糞おじさん、2021年にもなって参照渡しでメモリがーとか言ってるはクソ笑う さすが加齢臭おじさんやね
765 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 14:59:04.04 ID:sye04Gqu0.net] <input type="text" name="text1" value="aaa" readonly> ユーザー側がvalue="aaa"を書き換えてpostする事ってできますか? 出来るのだったらhtmlのソースに載るものをsqlに入れる時は全部プレースホルダにしないといけないですよね
766 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:14:15.05 ID:s+UN3BdM0.net] クライアントから送られてくるものは、絶対に信用してはならない。 place holder を使うのが基本 ドラクエ10 では、0.2% ほど、おかしなデータが送られてくると言ってる 伝送エラーでも、パリティーを再計算して、 正しいデータのように見せかけて伝送する、ルーターがある。 そういうルーターを、世界中から排除できない
767 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:29:27.65 ID:ZBXe4sG30.net] >>748 例の図書館サーバーは三菱がメンテナンスしてたんだよな それは知ってる
768 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:30:13.40 ID:39FD7TF90.net] >>750 いくらでも出来るよ そういう値をめんどくさいからと言って送ったりしない事 サーバー側に保存しておけ
769 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:50:17.28 ID:ZBXe4sG30.net] >>748 あの図書館サーバーは普通のアクセスが集中しただけで落ちるんだぞ DBのカーソルを使ったあと開放してなかったんだそうだ こんなの初心者しかやらないコーディングだろう?
770 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:51:38.16 ID:sye04Gqu0.net] >>751 >>753 有難うございます。 セレクトボックスの値や、javascriptで書き換えるreadonlyのテキストボックスの値を sql文に入れるかどうか迷ってました。 全部プレースホルダにします。
771 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 15:58:48.50 ID:jvdC9oQ40.net] >>754 それがナンナンダヨ 岡崎図書館事件は、お前の言うようなシステムだったとしても逮捕されて起訴猶予がくだされたって話だぞ あと三菱じゃなくてMDISな 子会社ってのは別会社なんだよ お前社会経験無いだろ
772 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 16:03:27.95 ID:ZBXe4sG30.net] 最近も偽造で有名になった、あの三菱 ホント、三菱の名前って有名になったよな
773 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 16:08:04.61 ID:ZBXe4sG30.net] >>756 不具合がある事は以前からは悪していたが、顧客には伝えていなかった 定期メンテナンスの度に、コッソリ修正を加えていたが、 岡崎図書館だけはチャンスがなかった 通常の利用者がアクセスするだけで落ちるサーバー 毎朝再起動するのが日課だったそうだ そうしないとダウンするサーバー 隠蔽体質は独特だよな
774 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 16:12:07.54 ID:ZBXe4sG30.net] 岡崎図書館だけでなく、システム導入した全国の図書館で不具合は起きていた 各図書館は定期メンテナンスがあった際に修正版を導入していたが、 岡崎図書館だけは、必要ないとメンテナンスを断られていた 不具合があると、本当のことを伝えてさえいれば修正できたのにな
775 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 16:14:36.36 ID:jvdC9oQ40.net] >>759 おまえ、気持ち悪いやつだな
776 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 17:00:02.35 ID:s+UN3BdM0.net] 確か、毎秒アクセスしてたのだろ。一日で何万回も。 それで落ちた。 普通のアクセスでは落ちない それで自白に追い込まれた。 自白しないと、一生家族を追い込むぞと脅されて、自白させられた 日本の裁判は、行政・司法の事前打ち合わせで有罪が決まる。 法廷では裁判しない だから、拷問捜査でも自白すると、絶対にくつがえらない。 自白したのが嘘でしたと言っても、裁判官がそんな事はあり得ないと、絶対に認めない それで、ボクサーが自白して、今も死刑囚のままの事件がある。 DNA 判定でも別人なのに、裁判官が嘘で自白する事はあり得ないと、言い続けている でも、無罪が国民にばれているから、有罪のまま釈放してる ボクサーはパンチドランカーで、知的障害になりやすい。 そういう奴を探してきて、拷問して自白させる。 知的障害は、すぐに自白するから そうやって犯人に仕立て上げる 自白を優先させる国は、世界中でも日本だけ 有罪率も他国では、50% だけど、日本だけ100%。 だから半分は、自白による冤罪
777 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 17:13:39.26 ID:ZBXe4sG30.net] 岡崎図書館システム作った企業は、サーバ構築した事がないんだろう あろうことか、システムの全ソースファイルがネットから丸見えだった 当時大勢がソース閲覧してレビュー大会始めてたな 隠しきれなくなった企業は、最期に全面謝罪していた
778 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 17:21:59.60 ID:ZBXe4sG30.net] >今年5月に発覚した岡崎市立中央図書館ウェブサイト「サイバー攻撃」事件は悪意のない一利用者の >プログラムによる DoS 攻撃とみられており当初「偽計業務妨害の疑いで」の逮捕も妥当かと思われて >いたのですが、不起訴(起訴猶予)処分が発表された後で図書館のプログラムを入手した朝日新聞が >セキュリティ専門家らに調査を依頼したところ、実は図書館プログラムのバグだったことが判明。 > このコードの場合、DB接続はアクセス元のブラウザ専用として確保(ASPセッションに紐付け)され、 >ASPセッションがタイムアウトするまでの間(7月の時点で岡崎市立中央図書館では実測で620秒くらい >だった)、閉じられることなく(使いもしないのに)占有されてしまう。その間に新しい閲覧者(ブラウザが) >接続してくると、次々新しいDB接続が確保され、その最大数に達すると、それ以上のアクセスを受付け >なくなってしまう。 >しかも酷いことに新聞報道に基づいたコメントによると、ソフトウェア開発業者の三菱電機インフォメーショ >ンシステムズ(MDIS)は2006年にこのバグを修正していたが、それ以前に導入した顧客には「ホームペー >ジが閲覧しにくくなるのは、コンピューターの性能が低いからだ」と説明、「新しいサーバーを導入して金を >出させるために、わざと情報を秘密にしていたようですね」。 https://ameblo.jp/ecomstation/entry-10627088813.html
779 名前:761 mailto:sage [2021/08/12(木) 18:07:20.17 ID:s+UN3BdM0.net] 日本では自白をしたら、絶対にくつがえせない 裁判で、無理やり拷問捜査で自白させられたと言っても、 裁判官がそんな事はあり得ないと、絶対に認めない 自白して、100% 有罪に出来るから、立件されなかっただけ 日本の裁判は、行政・司法の事前打ち合わせで有罪が決まる。 法廷では裁判しないから、有罪と同じ 青汁王子みたいに、検察庁の拷問取り調べを発信したら、起訴されて有罪になった。 一方、徳井みたいに脱税を認めたら、不起訴になった だから、青汁王子は検察改革として、選挙に立候補するかも知れない 日本の裁判の半分は、自白のみで証拠がない。 だから、本当は無罪だと国民にばれないように、マスコミを使って印象操作する 毎日ひっきりなしに、事件の捜査進行をマスコミにリークして、犯人だとでっち上げる。 それで実質的に、裁判所では裁判をしない 西村と同じ。 自公は何も立法せず、銀行へ要請して、酒屋に資金提供しないように締め上げる これは要請で強制力がないから、自公は責任を負わない。 単に、銀行が加害者になるだけw
780 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 18:07:42.18 ID:HkfEGEyR0.net] プログラミング言語を作るヒントのために メモリがー 参照がー という流れでもないな
781 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 18:50:40.99 ID:fLUL3BRXM.net] >>760 例のコテハンおじさんだぞ
782 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 18:56:05.94 ID:ZBXe4sG30.net] >三菱電機の不祥事が止まりません。労務問題に品質不正などが相次ぎ、6月29日には >鉄道車両向け空調装置において、35年以上にわたる不正検査の問題が発覚しました。 >7月2日に記者会見した三菱電機の杉山武史社長は組織的な不正行為と認め、引責辞 >任を表明する事態となりました。外部の弁護士を起用した調査委員会を発足し、原因究 >明や再発防止策の策定に乗り出しました。 体質として、どこかおかしい
783 名前:PHPerは糞 mailto:sage [2021/08/12(木) 20:24:45.08 ID:M/4woqjc0.net] >>749 それだけ言ってNGし切れないとか超ダセエ。ゆとり臭すぎ。 >>765 それは俺に言ってるのか? なら俺はいいが、場所は移るべきだ。ここの連中は興味もないだろうし。 PHPを中心に考えるのなら、候補としてはWebプログラミング板かな? 592を額面どおり受け取って移動でいい。 他に希望があれば指定してくれ。 (なおPHPを中心に考える必要は全くないので、他言語スレでも問題なし) 一般的にはプログラミング言語開発者は複数の言語を使いこなしていて、 それらで駄目な点を自身の言語で改善するものだから、 創始者のプログラミング観どおりにやればどフィットするものだが、 ラスマスはああいう感じで他の連中とは違うし、 実際、PHPの参照の仕様は、使い道なさそうに見える。 (ただし俺は仕様を完全に理解しているわけではない) PHP.netには、コピーオンライトと書いておくべきだろう。 ほぼ完璧に見えるPHP.netだが、これを落としているのは痛い。 (ただし他言語はもっとズボズボだから、PHP.netだからこその要求水準ではあるが)
784 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 01:24:24.59 ID:uAR6k+KCa.net] DBのコネクションプーリングとかWEBアプリならLaravelにおまかせで良いじゃん
785 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 01:52:40.74 ID:kzYHP2KN0.net] じゃあrobots.txtを遵守していればスクレイピングしてもOKなんですね?
786 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 02:00:55.03 ID:mbVVcoUY0.net] robots.txt遵守は一種の紳士協定のようなもので、法的な強制力は無い OKかどうかの判断は結構難しいと思う。 たとえ手順が正当だとしても、相手サーバーを落とす目的で 実行していると見なされれば業務妨害罪は成立する これは妨害する意図でしつこく電話を掛け、 対応に追われる状態になれば、妨害罪が成立するのと同じ 大量のアクセスになる場合は、事前に相手に了解を取るか、 リクエスト内のエージェント情報の中に、連絡先を書いておくとかする
787 名前:デフォルトの名無しさん [2021/08/13(金) 02:13:34.16 ID:K6cyKUrLa.net] >>734 当時最先端のJavaのように使えるブラウザなんだぜぇーと宣伝タレ 虎の威を借る狐 旧京都造形芸術大から名称変更した私立「京都芸術大」のようなヤカラたち
788 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 02:35:57.29 ID:oRQ6/bVP0.net] >>770 してもいいがアク禁にされたり大量アクセスして訴えられても知らないが
789 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 03:32:07.80 ID:IEEGs8930.net] teratail見るとアホほどスクレイピングしたがるのが分かる
790 名前:デフォルトの名無しさん [2021/08/13(金) 09:43:07.07 ID:5/dvlHjt0.net] >>748 に対して ID:ZBXe4sG30 が発狂しててワロタw サーバが落ちる落ちないの問題ではないんだよなぁ そして748はやはりサーバ構築経験が無いんだなと
791 名前:デフォルトの名無しさん [2021/08/13(金) 09:45:20.56 ID:5/dvlHjt0.net] >>770 >>642 読めよ メクラか?
792 名前:デフォルトの名無しさん [2021/08/13(金) 09:50:20.10 ID:5/dvlHjt0.net] PHPerは糞 おじさん相変わらず元気に加齢臭撒き散らしてて草w 無駄な長文は無能の証拠 まぁこいつはコテハン付けてるだけマシだけどな
793 名前:744 mailto:sage [2021/08/13(金) 12:16:30.97 ID:S8120IP70.net] 基本、スクレイピングじゃなくて、 サイトと契約して、サイトのAPI を使う YouTube API, Google Maps API など 5ch も、そう。 契約して、APIを使う。 勝手にスクレイピングすると、どうなるか知りませんよと、脅し文句が書いてある スクレイピングする所は、APIを提供していないサイトで、 robots.txt を遵守する とにかくスクレイピングは、初心者向けじゃない。 初心者のコードには、バグが多く、 無限ループでアクセスしたりするから、超危険! だから、そういう依頼があっても、受けてはいけない。 スクレイピングの本にも、スクレイピングしないように書いてある。 書いていないと、スクレイピングを推奨した人も、共犯者になるから >>744 のUdemy の山浦清透、動画を参照。 PHP で、マイナビ転職をスクレイピングしてる
794 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 17:39:58.89 ID:cfxShLTH0.net] グローバルスコープに定義した関数は、クラスの中のメソッド内でそのまま使えるのですか? 使えるのが奇妙な気がするのですが。。。 グローバルな変数は、クラス内では、そのままでは使えないですよね。
795 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 19:26:14.32 ID:NFq4Eq4J0.net] そのままでなく、 var で宣言して $this->num 昔はインスタンスの呼び出し無く使えたけど、 開発陣営に割り込んで圧かけて、 「難しくなければなりません」 と言って無茶苦茶にした人がいるんだよ。
796 名前:デフォルトの名無しさん [2021/08/13(金) 20:10:05.70 ID:5/dvlHjt0.net] >>779 クラス内で global $hoge; とすれば使えるけど? 逆に聞くが、クラス内でグローバルスコープに定義した関数を使う際には、どういう風に使えたら奇妙じゃないとお前は思うんだ?
797 名前:デフォルトの名無しさん [2021/08/13(金) 20:11:24.31 ID:5/dvlHjt0.net] >>780 お前質問の意味分かってないだろ
798 名前:デフォルトの名無しさん [2021/08/13(金) 20:14:02.70 ID:5/dvlHjt0.net] >>779 は namespace を理解してない可能性もあるか…
799 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 20:24:47.97 ID:9sqfFN6A0.net] >>781 >>どういう風に使えたら グローバルな関数を、いわば閉じてるクラスのメソッド内で使えること自体が奇妙に思えたのです。 オブジェクト指向のカプセル化に反するせいかもしれません。 たまたま、今日、グローバル関数をクラスメソッド内で使ってみたら使えてしまい困惑したので、 気になり尋ねてみた次第です。 global $hoge; みたいに宣言してから使うなら、なるほど納得できるのですけど、 宣言なしで、いきなり使えてしまい、戸惑ってしまいました。 便利ではあるけど、使うのはちょっと怖い感じもします。
800 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 20:38:23.23 ID:NFq4Eq4J0.net] PHP言語を開発した私が話についていけないなんて! いやぁぁぁーーー!!! まあいいや。 頑張ってね。
801 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 21:14:52.64 ID:9sqfFN6A0.net] global $hoge;//グローバル変数の宣言 global $hoge();//グローバル関数の宣言(不要) 考えてみたら、両者とも宣言が必要な方が直感的でわかりやすいですよね。
802 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 21:22:26.06 ID:9sqfFN6A0.net] global hoge();//グローバル関数の宣言(不要) $マークはいらなかったですね
803 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 21:22:29.93 ID:G+odjofr0.net] >>786 そんな仕様の言語は見たことないな 組み込み関数はどうやって使うの?
804 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 21:33:50.60 ID:9sqfFN6A0.net] >>788 なるほど、たしかに組み込み関数は、クラスのメソッド内で自由に使えますね。 ユーザー定義関数もそれと同じと考えれば、そこで使えるのは当然なのか。 目から鱗、モヤモヤ感が解消しました。ありがとうございました。
805 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 21:55:41.81 ID:hsOq5UIAM.net] 先週から勉強を始めた学生なんですが、 初心者向けの入門書の例文どおり入力してるはずなのにエラーが出たり正しく動作しなかったりで、 間違ってると思われる箇所を何度見直してもダメだったのに、 本の付録のサンプルコードでその部分を上書きすると動くようになることがあるんですが、何が悪いんですかね? 知識を習得する前に、間違い探しで日が暮れて還暦になっちゃいそうです〜_| ̄|○ 機嫌で動いたり動かなかったりすることあります?
806 名前:蟻人間 mailto:sage [2021/08/13(金) 21:58:11.89 ID:ZbJ7zOZVd.net] 全角と半角の区別、大文字と小文字の区別とかわかる? 全角スペースって知ってる? 日本語プログラミングには落とし穴が多いんだよ。
807 名前:デフォルトの名無しさん [2021/08/13(金) 22:06:11.14 ID:5/dvlHjt0.net] >>790 エラー文が読めないってこと? 何行目にどんなエラーがあるかきちんと出してくれるよね?
808 名前:デフォルトの名無しさん [2021/08/13(金) 22:14:27.56 ID:5/dvlHjt0.net] >>790 とりあえず自分の書くコード先頭に error_reporting(E_ALL); ini_set('display_errors', 1); を書いて出力されるエラー文を読もうな エラー文が読めない人はいくらやっても時間の無駄 毎回この2行を書くのは面倒くさいからこれを読むといい https://qiita.com/fallout/items/31f793708b243033fab1
809 名前:790 mailto:sage [2021/08/13(金) 22:17:16.92 ID:hsOq5UIAM.net] >>791 はい、ちゃんと書き分けてる筈なのにい〜(>ε<) >>792 いえ、エラーの出た行(その行より前のこともありますが)あたりを目を皿にして見直して、それでも分からないからサンプルコードで怪しい行を上書きしたら動いた、ということが何度かありまして: やだな〜、お盆だから何か来てるのかな?
810 名前:790 mailto:sage [2021/08/13(金) 22:20:01.01 ID:hsOq5UIAM.net] >>793 ありがとうございます、参考にします
811 名前:蟻人間 mailto:sage [2021/08/13(金) 22:22:36.30 ID:ZbJ7zOZVd.net] 日本語では使わない記号というのも落とし穴だね。 'と`の違い分かる? :と;の違いわかる?
812 名前:デフォルトの名無しさん [2021/08/13(金) 22:23:25.12 ID:5/dvlHjt0.net] >>794 今度エラー出た時にそのコードをここに転載してみ たぶん俺や他のPHPerなら見た瞬間にどこが間違いか分かるから
813 名前:デフォルトの名無しさん [2021/08/13(金) 22:26:39.58 ID:5/dvlHjt0.net] >>794 あーあとフォントを見直した方がいいかもね プログラミング用のエディタで使うフォントってわりと重要 [] [ここ壊れてます]
815 名前:790 mailto:sage [2021/08/13(金) 23:25:02.14 ID:hsOq5UIAM.net] >>796 (;´‘Д’:) >>797 そうですね、またお世話になるかも知れませんが、宜しくお願いします。 フォントはMSゴシックなんですが、まずかったでしょうか
816 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 23:26:01.95 ID:BmcFsWFm0.net] Source Han Code JP が好き
817 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 10:21:32.10 ID:SEP94OUU0.net] >>790 動くコードと動かないコードをWinMerge等で比較したら違う箇所がわかるからそこを確認する
818 名前:790 mailto:sage [2021/08/14(土) 17:30:53.66 ID:sRDJs50VM.net] 悪さする幽霊の正体が1つ分かりました! 同じプログラムを違うエディタで開いた際に文字化けしてて、 「これ、違うやん」と弄くり回しているうちに内容がおかしくなっていたようです。 >>801 早速試しましたが凄い、お手本との比較が一目でできて、自習には神ツールですね! 今のうちに入手できてよかったです、ありがとうございます!
819 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 06:24:01.27 ID:hVIBIqQR0.net] 最初はPHPで 、だんだんHTMLになってる。 Pythonじゃないんだが、これ、どうすればいいんだろう?
820 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:39:37.75 ID:e6OApvsn0.net] なぞなぞかな?
821 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:45:36.38 ID:zqaX1A8p0.net] 笑う
822 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 20:32:37.16 ID:Ok6ktu6f0.net] <?php //最初はPHPで、 ?> <html><head><title>だんだんHTMLになってる。</title></head></html> Pythonじゃ(こんなことは)ないんだが、これ、どうすればいいんだろう? …なんてPython使いが聞くわけないよな
823 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 21:46:02.20 ID:+BFmSrWm0.net] 表示が先で処理が後なの?Pythonは。
824 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 10:11:26.44 ID:tf0dssH60.net] phpとPHP、どっちが正解なんだろ
825 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 19:37:01.98 ID:nywPnT8p0.net] PHP8にしてみたらバグが結構でて焦る 0 == "" これがtrueからfalseになったのが痛い こういうキャストの理解でいいですよね PHP7 0 == 0 true PHP8 "0" == "" false https://www.php.net/manual/ja/migration80.incompatible.php
826 名前:デフォルトの名無しさん [2021/08/16(月) 19:38:04.81 ID:MmXvFMHy0.net] 結局$_session[ほにゃらら]はユーザーからいじることは不可能でいいの?埒があかないまま使ってて不安だわ
827 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 10:42:22.98 ID:vbnMp9Az0.net] 流れ読んでないけど、 セッションに登録された変数の内容をいじらせるということであれば、 $_SESSION[] = $_POST[] みたいなコードを書けば可能だし、 セッションファイルを、こちらの意図とは別にユーザが直接編集できるか? と聞いてるなら、OSやサーバの設定が不適切だったり、バックドアが仕掛けられてれば可能。 今時大丈夫だとは思うが、共用サーバなら念の為、 セッションファイルを管理するフォルダが適切かどうか確認したほうがいい。
828 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 12:57:21.03 ID:JCmgNVsVa.net] >>808 personal home page processor
829 名前:デフォルトの名無しさん mailto:sage [2021/08/18(水) 23:23:38.83 ID:JGF6Grsc0.net] ubuntu16.04(32bit)にPHP8系ってインストールできる?
830 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 09:42:32.90 ID:ULgkoJec0.net] むしろできないと思う理由を知りたい
831 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 11:13:19.07 ID:0gOCjcmh0.net] CPUはATOMで主メモリが2GBだったりする?
832 名前:デフォルトの名無しさん [2021/08/19(木) 12:03:31.93 ID:ZJMNNM340.net] PHPでゲーム作れますか?
833 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 12:05:57.21 ID:5v0iaVCE0.net] むしろできないと思う理由を知りたい
834 名前:デフォルトの名無しさん [2021/08/19(木) 13:00:26.79 ID:XQ1nrb4AM.net] じゃPHPの勉強はボケ防止やハゲ防止になりますか?
835 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 13:02:09.18 ID:0gOCjcmh0.net] ここでそんなこと聞いている所からみると、既に手遅れ感がハンパない
836 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 13:02:57.57 ID:5dKQF2Eb0.net] 人によっては効果が見られるが、 このようなアホな質問をする奴に効果は無い
837 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 18:08:41.25 ID:Dhm320Jo0.net] >>814 インストールしたら7.0が入ったからどうすっか悩んでる。Laravelインストールできなくて詰んだ パソコンが32bitのCPUだから16.04より新しいのがインストール出来ない ググっても16.04にPHP8をインストールしようとしている人を罵るコメントしか見つからない 海外の掲示板も英語を翻訳してがんばって読んでみたんだけど英語で罵ってるだけで結果は同じだった パソコン買い換え以外で何か解決策ないですか?
838 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 19:02:00.79 ID:ZyaFoemW0.net] >>821 7.0が入るのはOS標準のリポジトリからインストールしてるからであって、リポジトリを追加すればインストールできるよ sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt install php8
839 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 19:03:37.15 ID:ZyaFoemW0.net] >>821 罵ってるのが気になるからその掲示板とやらを教えて
840 名前:デフォルトの名無しさん [2021/08/20(金) 03:00:41.03 ID:VAxC0d3G0.net] phpspreadsheet詳しい人おる? laravelでExcelファイルダウンロード機能作ってるんだけど関数が入ってるとうまく動かないのかな…
841 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 13:00:34.30 ID:sg5lHnRB0.net] >>824 PhpSpreadsheetはエクセルファイルの読み書きようのライブラリ Excelファイルをダウンロードするのは、PhpSpreadsheetとはまた別の話になるが? とりあえず問題がどこにあるのか、その切り分けすらできてない気がする
842 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 13:04:01.25 ID:sg5lHnRB0.net] >>821 apt でインストールするのではなく、 ソースコードをコンパイルしてインストールってやった事はないのかな? >>822 が書いてる通りリポジトリを変更してaptでやっても良いけど、ソースコードからインストールする方法も(やれないよりは)できた方がいいよ
843 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 13:13:52.15 ID:sg5lHnRB0.net] >>810 その「ユーザー」というのが、810の作ったウェブアプリを利用する一般ユーザーって意味なら、 セッション変数をユーザー入力(GETやPOSTのことね)で直接上書きする設計になっていたら、ユーザーがいじる事はできるわな だから、ユーザー入力は常に汚染されていると考えしっかりチェックしようって話になる その「ユーザー」というのが、810の作ったウェブアプリが入っているサーバの別ユーザーって意味なら、 PHPが生成するセッションファイルは、Linux系OSのデフォでは /tmp 以下に sess_xxxxx ってファイルでPHPからの読み書き権限が与えられた状態で保存されてる ※デフォでどこに保存されるかは phpinfo() で確認しよう だから、もし別ユーザーからもそのファイルを読み書きできる状態なら、やりたい放題になる その場合、セッションファイルを保存する場所を変えるとか、ファイルベースではなくDBベースに変更するとかして対策する
844 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 13:17:12.75 ID:sg5lHnRB0.net] >>809 書いてる内容は合ってる そもそも == なんか使うのがいけない === を使えって話 PHP8の方が、人間には直感的に分かりやすい挙動だけど 型キャストなんて特別な理由がない限りはやってはいけない WordPressなんか型キャストだらけだけど、あれは後方互換を重視しすぎたせいで設計がクソなだけ
845 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 13:18:22.81 ID:sg5lHnRB0.net] >>808 PHP >>807 んなわけないw 出力をバッファすればどうにでもできるが、それはPHPでも一緒
846 名前:デフォルトの名無しさん [2021/08/22(日) 02:19:19.06 ID:0Cz6ueFz0.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 著者: アンドレアス・ルンプ バージョン: 1.5.1 nim-lang.github.io/Nim/manual_experimental.html Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
847 名前:デフォルトの名無しさん [2021/08/22(日) 13:16:28.80 ID:0Cz6ueFz0.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 バージョン1.5.1 nim-lang.github.io/Nim/manual_experimental.html 第二プログラミング言語として Rust はオススメしません Nim をやるのです https://wolfbash.hateblo.jp/entry/2017/07/30/193412 Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
848 名前:デフォルトの名無しさん [2021/08/22(日) 13:49:26.13 ID:4wvmP6CHr.net] htmlのクラス付けについて通常はclass javascriptはidだと教わったんですが phpのクラス付けでdiv idとdiv classのように分ける基準はどこでしょうか?