tags: Java PHP のプログラミング
PHP の変数は $ 記号で始まり、グローバル変数の場合は $_REQUEST のようにすべて大文字で始まります。 Java では、変数は文字 (a ~ z)、アンダースコア (-)、またはドル記号 ($) で始めることができ、変数は使用する前に int i = 0 などの型宣言が必要です。しかし、PHP はそれを使用しません。その型は代入によって完全に決定されます。あなたが与えたものはそれそのものです。では、なぜドル記号で始める必要があるのでしょうか?
PHP には echo "$name is me." のような出力ステートメントがあることを思い出してください。ドル記号がない場合、PHP は $name が変数であることをどのように認識するのでしょうか。
Java では、通常、使用する出力ステートメントは System.out.println() です。括弧には任意の基本型 + String を使用できます。 PHP では、出力ステートメントは、echo、print、print_r、var_dump など、より豊富です。 echo を例として、$name = 'Lshare'; と仮定します。 echo '$name is me.' の場合、PHP は一重引用符で囲まれた文字列を解析しませんが、$name is me. を直接出力します。 echo '$name is me.' の場合、PHP は二重引用符で囲まれた文字列を解析します。が解析され、Lshare is me が出力されます。二重引用符の代償として、単一引用符よりも効率が劣りますが、読みやすくなります。パフォーマンスを向上させるために、echo $name.' is me.' または echo $name,' is me.' を使用することもできます。ただし、二重引用符を使用する必要がないため、パフォーマンスは向上します。文字列の引用符を解析します。
興味深いのは、echo と print は関数ではなく、if や else と同様に言語構造であるということです。 () を使用して 1 つのパラメーターを出力することも、'' または "" を使用して複数のパラメーターを、で区切って出力することもできます (例: 上記の echo $name,' is me)。これはその文法であり、if...else... を学ぶ場合と同じように、これを理解することによってのみ、ルールを越えずに好きなことを行うことができます。
初心者は、このようなステートメント echo '
' に混乱する可能性があります。PHP は一重引用符内でこれを解析しないため、ブラウザは
を直接出力する必要があると考えます。ああ、PHP は解析しませんが、ブラウザは解析します。ブラウザは HTML タイプのデータを受け取り、それを解析してユーザーに提示するのではないでしょうか? PHP が
をブラウザに与えると、ブラウザはそれを改行に解析します。何か問題がありますか?
Java では int[] arr = new int[]{1,2,3}; を通じて配列を作成しますが、PHP では array() 関数を使用します。さらに、PHP の配列にはキーと値のペアの概念もあります。これは Java の Map に似ています。キーを指定する必要はありません。デフォルトではインデックス キーとして 0 から始まります。=> を使用してキーを指定することもできます。以下のように:
$arr = array( "1"=>"Google", "3"=>"Microsoft", "2"=>"Apple");
トラバーサルでは for ループまたは foreach ループを使用できます。 for ループは Java のループと似ていますが、foreach ループについては話さないでください。 Java の foreach ループは次のようになります:
int[] arr = new int[]{1,2,3};for(int item:arr){//":"前面是数组中元素的类型和临时变量,后面的是数组 System.out.println(item);}
PHP では次のようになります:
$arr = array( 1,2,3);//第一种foreach($arr as $value){//as前面是数组,后面是数组中元素的临时变量。 echo "$value<br/>";}//第二种foreach($arr as $key=>$value){//同上,不过同时保存了键值。 echo "$key = $value<br/>";}
とても簡潔ですね。インターネット時代においては、シンプルさ、効率性、そして帯域幅の無駄がないことが PHP のすべてです。
Java で文字列を配列に切り取る最も簡単な方法は次のとおりです:
String str = "1-2-3";String[] arr = str.splite("-");
PHP では展開関数が提供されています:
$str = "1-2-3"; $arr = explode("-",$str);
Java String で配列を変換します
String str2 = Arrays.toString(arr);//是"[1, 2, 3]"//或者要自定输出格式的话StringBuilder sb = new StringBuilder();for(int i=0;i<arr.length;i++){ sb.append(arr[i]); if(i!=arr.length-1){ sb.append("-"); }}String str3 = sb.toString();//是"1-2-3"
でも、PHP ではそれほど面倒なことはなく、implode 関数を使うだけです。
rreeeすべてがとてもシンプルになり、世界は突然良くなります。
Java では、配列をソートするために Arrays.sort() のオーバーロードされたメソッドが多数提供されています。
rreeePHPではそこまで面倒ではありませんが、もちろんカスタマイズはそれほどうまくありません。
$str2 = '['.implode(",",$arr).']'; //是"[1, 2, 3]"$str3 = implode("-",$arr); //是"1-2-3"
フォームを使用して複数選択した値を送信する場合、name 属性の値の後に「[]」を付ける必要があることに注意してください。そうしないと、PHP は代わりに 1 つの値を受け取ります。配列。例:
client.html
int[] ranks = new int[]{2,9,1,5,7};//使用默认的比较器,进行升序排序Arrays.sort(ranks); //为 "[1, 2, 5, 7, 9]"//自定义比较器,进行降序排序Integer[] ranks = new Integer[]{2,9,1,5,7};Arrays.sort(ranks, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2-o1; }});// 为 "[9, 7, 5, 2, 1]"
server.php
$ranks = array( 2,9,1,5,7);sort($ranks); //按值升序排序rsort($ranks); //r表示reverse,相反的意思。按值降序排序asort($ranks); //a表示association,键值联系的意思。保持键值关系升序排序arsort(); //保持键值关系降序排序ksort($ranks); //k表示key,按键升序排序krsort(); //按键降序排序
この記事のタイトル: PHP の特別な点は何ですか? Java との浅い比較 著者: IT Association Knowledge Base ライセンス: ©表示 - 非営利 - 継承 4.0"
クリエイティブ コモンズ ライセンス