検索
ホームページバックエンド開発PHPの問題プログラマーを混乱させる 10 の言語機能

各言語には、独自の機能、独特の構文、珍しい関数、または非標準の実行方法があります。そのため、初心者でも経験者でも、ある特集を見ていると突然酔ってしまうことがあります。この記事では、よく言われる10の「奇妙な」機能をまとめています。

1. Javascript: + はコネクタです

問題の説明: JS では、+ 記号は数値の間に使用され、通常の加算として使用できますが、文字に遭遇した場合は、文字コネクタとしても使用できます。例: '1' + 1 の結果は 11 です。

原因分析:

根本的な理由は、JS が弱い型付け言語であることです。たとえば、Python も文字コネクタとして + 記号を使用しますが、Python は厳密に型指定された言語であるため、整数に文字が追加されると、これがエラー操作であることを示すプロンプトが表示されます。

ネチズンの意見:

「問題は、これが予測できない必須のサイレント変換であり、無視されやすいことです。」 匿名

「JS は例外をスローすることでこの状況を処理する必要があります。」 crgwbr

「実行するには + を使用してください。」文字の連結は単に悪夢です。」Matteo Riva

2. Perl: モジュールは TRUE 値を返さなければなりません

問題の説明: ほとんどの場合、Perl モジュールは 1 で終了する必要があります。それ以外の場合、戻り値は です。最後のステートメントが TRUE ではない場合、システムはエラーを報告します。

原因分析:

Perlモジュールには初期コードとサブルーチンが含まれています。モジュール ファイルがロードされると、Perl は TRUE が返されるかどうかに基づいてコードが正常に実行されたかどうかを判断します。初期コードがない場合でも、Perl は最後のステートメントが TRUE を返すことを期待します。そうでない場合は、エラーが報告されます。

これは、三文字言葉の用法です)

問題の説明:

例えば、システムは??!を見た場合は自動的に | に変換し、??(を見た場合は自動的に変換しますto [. これにより、予期しない結果が簡単に発生し、コードの可読性が大幅に低下します

原因分析:

プログラミングの初期には、中括弧などの特定の特殊文字をキーボードで直接入力できませんでした。この間接的な方法が使用されました

ネチズンからの意見:

「Google ほどの知識があるなら、何を理解できないはずですか??!??!」 C は曖昧になり、理解するのが難しくなりました。」 Martin Beckett

4. PHP: 大文字と小文字を区別する処理

問題の説明:

PHP の大文字と小文字の処理は、ある場所では区別され、他の場所では区別されません。例: 変数名と。定数名は区別されますが、関数名、メソッド名、クラス名は区別されません

原因の分析:

おそらく、成熟したプログラミング言語に設定された CGI スクリプトから PHP の開発中に生じた成果物です。

ネチズンの意見:

「これが、PHP プログラマがアンダースコアではなくアンダースコアを使用して関数に名前を付けることに慣れている理由です。」paperstreet7

PHP では、すべてが可能です。 : true 値としての 0

問題の説明:

Ruby では、0 値は TRUE 値と同等です

原因分析:

ブール値のみ。 FALSEとnilはFALSEに相当し、残りは2、3などと同等に扱われます

ネチズンの意見:

「意図は良いのに、これは単純に腹立たしい。 .” Chris Lutz

「0==true! ほぼ崩壊したC言語脳です!」 Kenny

6. Python: レベルをスペースの数で分割する

キーワードや句読点の使用とは異なります。 PY は、コードの各行を明確に分割するためにインデント レベルを使用します スペースの数が間違っている (または、スペースと転置文字の数が一貫していない) と、プログラムがエラーを報告する可能性があります

原因分析:

PY 作成者の意図は、コードを作成することですプログラマ自身がコードの明瞭性を維持する責任を負うべきだと思います:

「誠実に、これが私が PY から離れている根本的な理由です。」このような強制メカニズムが本当に必要です。本当に怠け者なのでしょうか。 "Joris Meys

7. C: 配列インデックスの動作モードはポインタの動作モードと同等です

問題の説明:

C では、a[i] と i[a] は交換可能で、両方の記述方法で同じ結果です。

原因分析: Cでは、メモリブロックの配列とポインタに違いはありません。つまり:

a[i] = *(a + i) = *(i + a ) = i[a].

ネチズンの意見:

「C言語のわかりにくいコード競争ではこれは価値がない。 "混乱

" "これにより、C 言語の核心、ポインター、およびメモリをより直接的に扱うことが明らかになったと思います。 ” Michael Neale

8. Perl の: 定義済み変数

問題の説明:

Perl には非常に長い特殊変数のリストがあり、その中の名前は非常に複雑です (ただし、対応する長い英語の単語もあります)。したがって、上級 Perl 開発者でない限り、Perl ドキュメントを繰り返し読むのが一般的です。

原因分析:

これらの変数は、プロセス ID ($$)、エラー メッセージ ($@)、正規表現の一致 ($^R) など、さまざまな意味を持ちます。

ネチズンの意見:

「とても迷惑だ!」 MatrixFrog

「合理化された開発者にとっては恩恵になるかもしれない。」 niXar

「これらの変数の問題は、Google では見つけられないことだ!」 JavaScript: セミコロンの自動挿入

問題の説明:

JS はステートメントの終わりの記号としてセミコロンを使用しており、コードが壊れてもセミコロンを自動的に挿入します。これは多くの場合エラーにつながります。

原因分析:

自動化の本来の目的は、特に初心者に利便性をもたらすことです。

ネチズンの意見:

「言語機能を設計するときに常にユーザーを愚か者だと見なしていると、問題が発生します。」Rob Van Dam

「JS で最も厄介なのは、fennec

の 1 つです。」

10. Java: オートボクシングと整数キャッシュ

問題の説明:

Java は、int を An Integer オブジェクトに変換するなど、基本型データをオブジェクトに自動的に変換します (オートボクシング)。同時に、デフォルトでは、キャッシュされた Integer オブジェクトの値は -128 ~ 127 です。この場合、 == を使用して、同じ値を持つ 2 つの Integer オブジェクトを比較するときに問題が発生します (-128 と 127 内は TRUE、残りは FALSE)

原因分析:

自動ボックス化メカニズムにより、コード入力が削減されます整数キャッシュにより処理速度が向上します。

ネチズンの意見:

「幸いなことに、私は単なる C# プログラマーです。」 Will

「これは間違いではありませんが、数値処理にプリミティブ型 (ブール値など) を使用する理由になります。」ラビワラウ

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません