タグ付けされた質問 「php」

PHPに関する質問。これは、Web開発に特に適した、広く使用されている汎用スクリプト言語です。

8
PHPで<?=タグを使用するのは悪い習慣ですか?
私は&lt;?= ?&gt;最近このPHPタグに出くわし、使用することに消極的です。短いタグを使用するのは悪い習慣で&lt;? ?&gt;あり、&lt;?php ?&gt;代わりに完全なタグを使用する必要があることを知っていますが、これについてはどう&lt;?= ?&gt;ですか? タイピングを節約し、コードを読みやすくするためにはIMOが適しています。したがって、これの代わりに: &lt;input name="someVar" value="&lt;?php echo $someVar; ?&gt;"&gt; このように書くことができます。 &lt;input name="someVar" value="&lt;?= $someVar ?&gt;"&gt; この演算子を使用するのは嫌いですか?
190 php  shortcuts 

7
セキュリティ集約型サイトの小さなバグを修正するために雇われています。コードを見ると、セキュリティホールがいっぱいです。職業はなんですか?[閉まっている]
誰かに雇われて、サイトでちょっとした仕事をしています。大企業向けのサイトです。非常に機密性の高いデータが含まれているため、セキュリティは非常に重要です。コードを分析すると、セキュリティホールで満たされていることに気付きました-読み取り、ユーザーのget / post入力をmysqlリクエストとシステムコマンドに直接投げる多くのPHPファイル。 問題は、彼のためにサイトを作った人は、その仕事に依存している家族や子供を持つプログラマーだということです。「あなたのサイトはキディ遊園地のスクリプトです。あなたのためにやり直してください。元気になります。」 この状況で何をしますか? 更新: 私はここでいくつかの良いアドバイスに従い、サイトでいくつかのセキュリティ上の欠陥を発見したことを開発者に丁寧に報告しました。私はそのラインを指摘し、そこにSQLインジェクション攻撃の潜在的な脆弱性がある可能性があると述べ、彼がそれについて知っているかどうか尋ねました。彼は答えた:「確かに、しかしそれを悪用するには、攻撃者はデータベースの構造に関する情報を持っているべきだと思う。もっとよく理解しなければならない」。 アップデート2: 私はそれが常にそうではないと言って、彼がそれを適切に扱うためにこのStack Overflow質問リンクに従うことを提案しました:PHPでSQLインジェクションを防ぐ方法は?彼はそれを勉強するだろうと言い、以前彼に言ったことに感謝した。おかげさまで、私の役目は終わったと思います。

30
PHPにはどのような機能が必要ですか?[閉まっている]
今はホリデーシーズンであり、誰もが希望を抱いているので、PHPでどの言語機能を追加したいのでしょうか。私は、言語に対する実用的な提案/要望に興味があります。実用的には: 実際にできること(「PHPが私のコードの意味を推測してバグを修正してくれることを望んでいる」または「コードが5ミリ秒未満で実行されることを望んでいる」) PHPを別の言語に変更する必要のないもの(「中括弧の代わりに$記号を削除してスペースを使用したい」または「PHPをコンパイルし、静的に入力し、名前に#を含めたい」) 既存のすべてのコードを壊す必要のないもの(「500個の関数の名前を変更し、それらのパラメーターの順序を変更しましょう」) 何かない言語やそれのいくつかの興味深い側面を変更(ない:「私はXYZのプロトコルをサポートするための拡張があったことを望む」または「私はバグ#12345を希望するが最終的に固定されました」) 暴言以上のもの(「PHPがそんなにひどく吸わないように」) 誰にも良い願いがありますか? Mod編集:Stanislav MalyshevはコアPHP開発者です。

21
「キャリアを開始して数年経ってもプログラミングをしないでください」。これは公正なアドバイスですか?[閉まっている]
私はPHPで約5年の経験があり、Java、C#で多少経験が少なく、最近はPythonを学ぼうとしています。プログラマーとしてのキャリアを始めてから、仲間のプログラマーから、プログラミングはキャリアの初期の数年に適していると言われています(ほとんどの人は5年と考えています)。それ。彼らが提示する理由には、プログラミングに関連する頭痛とプレッシャーが含まれます。彼らはまた、プログラマーはあまり社会的ではなく、通常は家族などに時間を与えることを好まないと言います。特に「ああ、来て、あなたは一生プログラミングをすることはできません!」 ここで少し混乱しているので、他の人に質問する必要があります。プログラミングを辞めたらどうすればいいですか?!この場合、教えることは良い選択肢かもしれませんが、おそらく最初に博士号を取得する必要があります。また、私の国(パキスタン)でプログラマーの生活があまり良くないことも注目に値するかもしれません。通常、緊急のプログラミングタスクを達成するためにオフィスで2〜3時間余分に時間を費やさなければなりません。他の国や地域でも状況はいくぶん似ていると感じています。 この分野で5年間過ごした後、キャリアをプログラミングから何か他のものに変えることは公正なアドバイスだと思いますか? 更新 なんてこった...この分野で40年以上の経験を積むことができるとは知らなかった。私は1971年以来人々がそれをやっているのを見て興奮しています。それは私の誕生の15年前を意味します!このような経験豊富な人々と話すことができてうれしいです。ここパキスタンではそんなチャンスはありません。 すべての助けと共有をありがとう。これについてあなたの考えを得るのは素晴らしい経験でした。

3
インタビューでPHPのスキルをテストするにはどうすればよいですか?[閉まっている]
私の会社はPHP開発者を雇う必要がありますが、私の会社にはPHPの知識がなく、PHPのスキルをテストすることは困難です。C / Java開発者であれば、Game of Lifeの簡単な実装を作成するように彼に依頼しますが、PHPはまったく異なる言語です。 私は興味を持ってこのテストを見ました: http://vladalexa.com/scripts/php/test/test_php_skill.html 他に誰か提案がありますか?
58 php  interview 

12
JavaScriptにPHPを含めることは悪い習慣と見なされますか?
このサイトでは何度もこのようなことをしようとしている人がいます: &lt;script type="text/javascript"&gt; $(document).ready(function(){ $('&lt;?php echo $divID ?&gt;').click(funtion(){ alert('do something'); }); }); &lt;/script&gt; これは、人々が自然に陥るようなパターンではないと思います。これを示しているチュートリアルや学習資料がそこになければなりません。そうでなければ、それはあまり見られません。私が求めているのは、これをあまりにも大きくしているのですか、これは本当に悪い習慣ですか? 編集: これについて私の友人に話していました。彼はしばしばJavaScriptにルビーを入れて、この点を持ち出しました。 JavaScriptにアプリケーション全体の定数を動的に配置して、2つのファイルを編集する必要はありませんか?例えば... MYAPP.constants = &lt;php echo json_encode($constants) ?&gt;; また、ライブラリで使用する予定のデータを直接エンコードしてもかまいません ChartLibrary.datapoints = &lt;php echo json_encode($chartData) ?&gt;; または毎回AJAX呼び出しを行う必要がありますか?

4
PHPの変数の支配的な命名規則は何ですか:キャメルケースまたはアンダースコアですか?[閉まっている]
コンセンサスは、開発対象のプラットフォームの規則に従う必要があるということです。見る: アンダースコアまたはラクダケース? 命名規則:camelCase対underscore_case? ただし、PHPはメソッドや関数(mysqli::set_local_infile_default、 など)についても、内部的には規則に厳密に従っていないようです(そこに驚くことはありませんPDOStatement::debugDumpParams)。ただし、関数名ではアンダースコアが支配的であるようです。 しかし、私が見つけることができなかったのはこれでした:PHPの変数の支配的な命名規則は何ですか?

5
コンストラクタから例外をスローする必要がありますか?
PHPのコンストラクターから例外をスローできることは知っていますが、それを行う必要がありますか?たとえば、パラメータの値が期待どおりではない場合。 または、メソッドが呼び出されるまで例外のスローを延期する必要があります。両方の場合の長所と短所は何ですか?

5
PHPまたはASP.NETを使用する場合 [閉まっている]
私はPHPとASP.NETを使用してWebアプリケーションの開発に幅広く取り組んできましたが、顧客からよく聞かれる質問の1つは、PHP Webサイトとasp.net Webサイトのどちらに進むかです。 したがって、最初に頭に浮かぶのは、次のような質問に答えることです。 PHPはオープンソースであり、ASP.NETはMicrosoft製です。 通常、そのような何かが言われた後、顧客はそこに空白の外観を持っています。明らかに、一方がオープンソースであり、もう一方がオープンソースではないという事実は、実際にそれらをazeしていません。そして、正当な理由で、私が最初にそれを聞いたとき、それは本当に私に多くを語らないからです。 両方で作業して、ウェブサイトの開発に関してはそれぞれに違いがあることを知っています。 私の質問は、ASP.NETとPHPの違いは何ですか 特徴 セキュリティ 拡張性 フレームワーク 平均開発時間 適切な開発プラットフォームで十分な情報に基づいて選択できるように、顧客と比較できるように、事実のリストを編集しようとしています。

7
PHPでの変数の型キャスト、これを行う実際的な理由は何ですか?
私たちのほとんどが知っているように、PHPには弱い型付けがあります。そうでない人のために、PHP.netは次のように述べています。 PHPは、変数宣言で明示的な型定義を必要としません(またはサポートしません)。変数のタイプは、変数が使用されるコンテキストによって決まります。 好きでも嫌いでも、PHPはその場で変数を再キャストします。したがって、次のコードは有効です。 $var = "10"; $value = 10 + $var; var_dump($value); // int(20) PHPでは、次のように変数を明示的にキャストすることもできます。 $var = "10"; $value = 10 + $var; $value = (string)$value; var_dump($value); // string(2) "20" それはすべてクールです...しかし、私の人生にとって、これを行うための実用的な理由を考えることはできません。 Javaのような、それをサポートする言語での強い型付けの問題はありません。それは大丈夫で、私はそれを完全に理解しています。また、関数パラメーターの型ヒントを認識し、その有用性を完全に理解しています。 型キャストに関する問題は、上記の引用文で説明されています。PHPで型を自由に交換できる場合は、型を強制的にキャストした後でも可能です。また、操作で特定のタイプが必要な場合にオンザフライで実行できます。これにより、次のことが有効になります。 $var = "10"; $value = (int)$var; $value = $value . ' TaDa!'; var_dump($value); // string(8) "10 TaDa!" …

6
FacebookがPHPコードをC ++に変換するのはなぜですか?[閉まっている]
FacebookはPHPで始まり、速度を上げるために、PHPをC ++コードとしてコンパイルするようになりました。もしそうなら、なぜそうしないのですか: C ++でプログラムするだけですか?PHPをc ++コードに移植する魔法のコンパイラボタンを押すと、間違いなくいくつかのエラー/バグがあるはずですよね? この印象的なコンバーターが非常にうまく機能するのであれば、なぜPHPにこだわるのでしょうか?RubyやPythonなどを使用しないのはなぜですか?注-これら2つをランダムに選択しましたが、ほとんどの人がこれらの言語でのコーディングは「喜び」だと言っているためです。それでは、なぜ素晴らしい言語で開発してから、魔法のc ++コンパイルボタンを押してみませんか?
42 c++  php  compiler  facebook 

7
Zend Frameworkがそれほど複雑なのはなぜですか?
私はWeb開発者であり、PHPでいくつかのWebアプリケーションを開発した経験があります。私は自分で製品を開発するアイデアを持っていますが、MVCのアイデアと、アプリケーションを簡単に管理および変更できる方法が本当に好きなので、MVCベースのフレームワークを使用することにしました。 Zend Frameworkを選択しましたが、新しいプログラミング言語を学ぶよりも難しいようです。小規模なアプリケーションを実行する場合でも、一度に多くのことが行われます。 同様に、ルーティングの概念はコアプログラマにとっては新しいため、非常に複雑です。ここにいる人たちは、私が尋ねているような数千のそのような質問を読んでいることを知っていますが、Zend Frameworkを一晩で学ぶつもりはありません。必要なだけの時間を与えたいと思っていますが、今までは意味がありません。Zendライブラリには数千のクラスがありますが、特定のクラスの使用場所と使用方法をnoobはどのように知るのでしょうか?Zend Frameworkのブートストラップとそのマッピングを理解することはまだ非常に難しいと感じています。私はマニュアルを読み、それに従い、物事は動き始めますが、実際にそれらが実際にどのように起こっているのか正確にはわかりません。 また、モデル、ビュー、コントローラーがどのように連携するか、Zend Frameworkでアプリケーションを計画する方法については、まだ何もわかりません。コアphpに関しては、どうすればよいか、コードで簡単に翻訳するよりも、アイデアが頭にありますが、Zend Frameworkでは、アイデアの翻訳方法がわかりません。

10
これらの明白で関連性のあるケースにgotoを使用すると、何がそんなに悪いのでしょうか?
私はいつもそれgotoが悪いものであり、どこかに地下室に閉じ込められて永久に見られることはないことを知っていましたが、今日使用するのに最適なコード例に遭遇しましたgoto。 IPがあり、IPのリスト内にあるかどうかを確認してからコードを続行する必要があります。そうでない場合は例外をスローします。 &lt;?php $ip = '192.168.1.5'; $ips = [ '192.168.1.3', '192.168.1.4', '192.168.1.5', ]; foreach ($ips as $i) { if ($ip === $i) { goto allowed; } } throw new Exception('Not allowed'); allowed: ... 使用しない場合はgoto、次のような変数を使用する必要があります $allowed = false; foreach ($ips as $i) { if ($ip === $i) { $allowed = true; …
40 php  goto 


2
PHPが関数のオーバーロードをサポートしないのはなぜですか?
プログラミング言語の重要な機能の1つは、引数を介して関数をオーバーロードする機能を持つことだろうかと思います。これはオブジェクト指向プログラミングの文脈において不可欠だと思います。 意図的に取り残されて許可されていませんか?または、オーバーロードは良い習慣ではありませんか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.