PHP 学習ガイド - 第 5 章

黄舟
黄舟オリジナル
2016-12-23 09:44:56990ブラウズ

第5章

構文、変数、出力

この章のキーポイント

◆ PHPプログラムコードの基本ルールを理解する

◆ 情報を変数に格納する

◆ 出力をWebページに表示する

この章では、 PHP の基本構文は、通常の形式を使用するすべての PHP プログラム コードが従わなければならない規則です。また、PHP コードの実行時に変数を使用して情報を保存および取得する方法についても説明し、最後にユーザーのブラウザ ウィンドウにテキストを表示する最も簡単な方法について説明します。

PHP 構文の緩さと柔軟性

PHP について、最初に言及すべきことは、可能な限り緩さと柔軟性を追求しているということです。プログラミング言語は、従うべき文法規則の厳密さによって大きく異なります。そうすることで、必要なものを正確に書くことができるため、選択することが最善です。原子炉を制御するプログラムを作成していて、変数の指定を忘れた場合、元の設計意図から徐々に逸脱するよりは、プログラムの実行を拒否する方がはるかに良いでしょう。ただし、PHP 自体は、使いやすくすることよりも、デザイナーが正しく使用できるようにすることに重点を置いているため、PHP の基本的な設計原則は別の仕様テンプレートに基づいています。 . プログラムは、プログラム コードの意味を指定するために余分な作業を行います。 PHP で必要なプログラム コードは非常に少ないですが、プログラム コードの意味を可能な限り最大限に表現できます。これは、変数宣言や関数プロトタイプなど、他の言語にある特定の構文機能が PHP では必要ないことを意味します。

とはいえ、PHP はユーザーが考えていることを読み取ることはできませんが、それでもユーザーが表現する必要があり、従うべき文法規則がいくつかあります。当初作成する予定だった Web ページではなくブラウザ ウィンドウに「解析エラー」が表示された場合、作成したプログラム コードが PHP が許容できない程度にルールに違反していることを意味します。

HTML は PHP ではありません

覚えておくべきもう 1 つの重要な点は、この構文は PHP 内でのみ使用する必要があるということです。 PHP は HTML に埋め込まれているため、このようなファイルでは、各部分はそれぞれ PHP または HTML によって解釈され、その中の PHP タグに従って区別されます。

PHP 構文は PHP 内でのみ有効であるため、この章の内容は PHP モードを参照していると想定されます。つまり、ほとんどのプログラム コード スニペットは HTML Web ページに埋め込まれており、適切なマークアップ マークによって区別されると想定されています。 。

PHP には C 言語の構文スタイルがあります

理解すべき 3 番目の重要な点は、PHP は C 言語スタイルに非常によく似たプログラミング言語であるということです。読者がすでに C を知っている場合は、PHP をすぐに学ぶことができます。それでもうまくいかない場合は、マニュアルをもう一度確認してください。この章の残りの部分は、C をまだ知らない人向けです。C プログラマであれば、この章のタイトルをすぐに読むことができます。C 言語プログラマが作成した付録も参照してください。したがって、貴重な時間を節約できます。

PHP は半空白には敏感ではありません

半空白とは、プログラマが入力する画面上の空の部分で、スペース (スペースハー)、タブ文字、Enter キー (行末の終端記号) などが含まれます。 PHP はそのような空白には敏感ではありませんが、これは空白やそのようなコンテンツが重要ではないという意味ではありません (実際、PHP 言語で「単語または単語」を区切るには空白や空白は依然として非常に重要です)。スペースの数に関係なく、1 つのスペース文字はそのような多くの文字と同じです。

たとえば、2+2 の合計を変数 $four に代入する以下のすべての PHP 構文は等しい

$four=2+2; // 単一のスペース

$four =2+2; tab キー

$four =

2

+

2; //複数行スタイル

Enter キーの行末記号を空白として使用すると、空白がないことを意味するため、非常に便利です。構文は 1 行にする必要があるため、プログラムの作成が非常に簡単になります。

PHP は大文字と小文字を区別することがあります

前に述べたように、PHP は大文字と小文字を区別することがあります (つまり、英語の大文字と小文字の違いを区別します) ことに読者は驚かれるかもしれません。これは、すべての変数設定において特に注意する必要があります。次のようなプログラム コードを HTML ページに埋め込む場合:

<?php

$capital=67;

Print(“Variable capital is $capital<BR>”);

Print(“Variable CaPiTaL is $ CaPiTaL<BR>”);

?>

出力結果は

変数の資本は67です

変数CaPiTaLは

これは、変数が異なるケースを使用しているため、2つの異なる変数に分割されています。 (驚くべきことに、デフォルトのデバッグ設定では、このようなプログラム コード スニペットは PHP エラーを生成しません。この章で後述する「未指定の変数」セクションを参照してください。)

一方、PHP と C 言語の違いは、関数名は、基本的な構文構造 (if、then、else、while など) と同様に、大文字と小文字が区別されません。

説明文はセミコロンで終わります

以下は $greeting 変数に文字列を割り当てる一般的な PHP 文です。

$greeting="PHP へようこそ!";この章では、より小さなコンポーネントからこのようなステートメントを構築する方法と、PHP インタープリターが表現の評価操作を実行する方法を紹介します (これらのステートメントや式にすでに精通している場合は、この内容をスキップできます)。

PHP の最小構造は、数値 (3.14159)、文字列 (?tow?)、変数 ($tow)、定数 (TRUE)、特殊な単語 (if、else) などの分割できないトークンであり、 PHP 自体の構文など)、それらは空白やその他の特殊文字 (括弧や中括弧など) によって互いに区切られています。

PHP で最も複雑な構造は式です。これは、タグと [値] を任意に組み合わせたものです。単一の数値も式であり、単一の変数も式です。単純な式を組み合わせてより複雑な式を作成するには、通常、式の間に演算子を追加するか (たとえば、2+(2+2))、式を関数として呼び出します (たとえば、pow(2*3, 3*2))。 2 つの入力を取る式の番号は入力として扱われるため、入力を持つ関数は関数名の後に入力を括弧で囲み、入力 (パラメーターと呼ばれる) はカンマで区切られます。

式の評価操作

PHP インタープリターがプログラム コード内で式を検出すると、その式はすぐに評価されます。これは、PHP が式の最小要素の値から開始し、式の値全体が生成されるまで、演算子または関数で接続されたこれらの値を結合し続けることを意味します。たとえば、判断プロセスの各ステップは想像力で次のようになります:

$result=2*2+3*3+5;

(=4+3*3+5)//想像力 推定プロセス

(=4+9+5)

(=13+5)

(=18)

結果は $result 変数に格納される数値 18 になります。


評価の優先順位、結合性、順序

PHP 式の評価には 2 種類の問題がある可能性があります: 部分式が結合されている場合、または結合されている場合、評価の順序は何ですか?たとえば、今示した評価評価プロセスでは、乗算は加算よりも密接に結合しており、最終結果に影響を与えます。

組み合わせた式を操作する具体的な方法は、優先順位ルールと呼ばれます。優先度の高い演算子は、最初に他の周囲の式を取得して操作します。必要に応じて、これらのルールを覚えておいてください。たとえば、[*] は常に [+] よりも優先されます (これらのルールについては後続の章で詳しく説明します)。または、この鉄則を使用してください。疑わしい場合は、括弧を使用して式を結合してください。

例:

$resultl=2+3*4+5//結果は19です

$result2=(2+3)*(4+5)//結果は45です

演算子の優先順位ルールは、式がどのように結合されるかについてのあいまいさを取り除きますが、演算子が同じ優先順位を持つ場合はどうなるでしょうか?たとえば、次の式を考えてみましょう:

$how_much=3.0/4.0/5.0;

この式は、どの除算演算子が数値 4.0 を最初に処理するかによって、0.15 または 3.75 に等しくなります。オンラインの説明書には結合性ルールの完全なリストがありますが、覚えておくべき最も重要なルールは、結合性は通常は左から右の順序であるということです。つまり、上記の式は の左側の除算演算子であるため、0.15 と評価されます。 2 つの除算演算子が優先されます。

最後の質問は評価の順序ですが、これは結合性とは異なります。たとえば、次の算術式:

3*4+5*6

乗算は加算の前に実行する必要があることはわかっていますが、これは PHP がどの乗算演算を最初に実行するかを知っていることを意味するわけではありません。一般に、評価順序はほとんどの場合結果に影響しないため、ユーザーは評価順序を気にする必要はありません。通常、式の他の部分での部分式の指定により、結果が評価の順序に依存する、いくつかの奇妙な例を構築できます。たとえば、

$hun=($this=$that+5)+($that+$this+3); //悪い例

ただし、このようには書かないでください。 PHP には依存関係がある可能性がありますので、結果については説明しません (左から右の評価順序に依存する唯一の合理的な使用法は、ブール式の「ショート パス」モードです。これについては後で説明します)第 7 章の表紙で説明します)。

式と型

通常程序设计师会很小心地配合表达式的类型和将它们组合在一起的运算子或函式。常见的表达式是数学的表达式(用数学运算子结合数字)、Boolean表达式(用and或or结合true或false的语句)或字符串连算式(用运算子和函式来建构字符串)。与PHP的其余部分一样,对类型的处理会很宽松。例如,下面有表达式范例,很明显地它将两个运算试很不恰当地混合在一起使用了:

2 + 2 * ?nonsense? + TRUE

这个表达式不会产生错误,而是求值为数字「3」(你可以暂时把这个范例当作猜谜,下一章将解释为什么会出现这样的结果)。

指定表达式

最常见的表达式类型是指(assignment),在表达式中,把一个变数设置为等于某表达式的评算求值结果。表达式的形式是,先有一个变量名(是以「$」开头),后面是一个等号,然后是要评算求值的表达式。例如,

$eight=2 * (2 * 2)

$eight」将按照所我们所希望的方式被指定。

有一件要记住的重要事项是,指定表达式也是一种表达式,因此它们本身是有「值」的!运算工指定的对象无论是变量或值都是相同的。这意谓着可以在更复杂的表达式中间使用表达式。如果对下面的表达式求值:

$ten=($two = 2)+($eight = (2 * 2))

每个变量都将被指定为等于其名称的数值。

总而言之,PHP中的叙述语句(statement)可以是最后带带着分号(;)的任何表达式。如果把表达式看成是词组,则叙述语句则算是「整个句子」了,分号就算是句子结尾处的句号。任何括在PHP标记内有效PHP叙述语句都算是PHP的有效程序代码。

使用表达式和语句的理由

通常只有两个理由需要在PHP中编写表达式:为了取得它的值(value),或者为了取得次作用(side effect)。表达式的值传递给包含它的更复杂表达式;而次作用是除求值结果以外发生的任何事情。最典型的次作用包括指定或更改变量,在使用者屏幕是显示某些内容,或者对程序环境的一些其它持久性改变(诸如与数据库的互动)。

仅管叙述语句是表达式,但它们本身不能包含在更复杂的表达式中,这意味着使用叙述语句的唯一理由就是它的「次作用」!这也意味着可以编者编写一些合法但完全无用的语句,例如下面的第二条语句:

Print(“Hello”);//副加效应为输出显示至屏幕

2 * 3 + 4;//无用,没有效应产生

$value_num= 3 * 4 + 5;//副加效应为指定

Store_in_database(49.5);//副加效应到数据库

大括号的使用

虽然叙述句不能像表达式那样合并,但可以在能够使用语句的位置放入一串语句,把它们括在大括号中即可。

例如,PHP中的if结构有个测试条件(在圆括号中),条件后面是如果判断结果为真则应该执行的语句。如果在判断为真时要执行多条语句,可以使用大括号括住的这一堆叙述语句。下面的二个if程序代码段是相等的(都是判断一个恒真的叙述并印出相同讯息):

if(3==2+1)

print(“Good – I haven′t totally lost my mind.<BR>”);

if(3 ==2+1)

{

Print(“Good – I haven′t totally ”);

Print(“lost my mind.<BR>”);

}

在大括号包围住的中央可放置任何语句,其中包括本身带有大括号区块的if叙述。这表示if语句可包含另一个if叙述,这种巢状嵌套可依需要套入任意层。

注释

注释是程序的一部分,就是我们人类用来解释说明程序而使用,目的是帮助说明解释程序代码。程序执行器对程序代码做的第一件事情就是剔除注释,因此注释对程序的功能没有任何作用。但它对于帮助其它人在阅读程序代码时,更能理解原设计者在编写程序时的想法,因此注释也可算是无价的,即使就是程序设计师自己编写了一段时间之后,再回头看自己的程序也是如此。

PHP算是从几种不同程序设计语言(包括C、Perl和UNIX的shell script)获取灵感。因而PHP支持所有这些语言的注释风格,并且这些风格可在PHP程序代码中自由混合使用。

属于C语言风格的多行注释

多行的注释风格和C中的相同:注释从字符对「/*」开始,以字符对「*/」当作结束。例如:

* This is

A comment in

PHP */

关于多行注释,要记住的最重要一点是,注释不能巢状嵌套方式编写。不能在一个注释内放另一个注释。如果试图这样做,注释将在第一个「*/」字符对后结束,原本要作为注释的其余部分将被解释为程序代码,可能会导致错误的结果。例如:

/* This comment will /* fail horribly on the

Last word of this */sentence

*/

这是一种很容易造成的无心错误,通常发生在试图「注释」一段已经有注释语言的程序时,是常遇到的,请读者小心。

单行注释:「#」和「//」

除了/*…*/这种多行注释之外,PHP还支持两种在给单行使用的不同注释方式,一种是从C和Java继承来的,另一种是则后Perl和shell script继承来的。Shell script风格的注释以「#」符号开始,而C++风格的注释以双斜线「//」开始。这两种方法都会将加注的该行叙述的剩余部分当成注释对待,如下所示的范例:

# This is a comment ,and

# this is the second line of the comment

//This is a comment too.Each style comments only

//one line so the last word of this sentence will fail horribly.

非常机灵的读者认为单行注释与我们前面所介绍到的空白不敏感性并不相容。这是对的,如果采用单行注释并用Enter行结束符号替换了其中一个空格,结果全是不同的。以更精确的讲法是,PHP在从程序代码中剔除了注释后,程序代码才是对空白不敏感的。

变数

在PHP程序中间储存信息的主要方式是透过使用「变量」,这是取一个名称然后保存发后要使用的任意值的方式。

关于PHP中的变量,以下有几点正是要注意知道(后面会有更详细的讲解):

◆ PHP中的所有变量都要在最前面加上「$」符号标示。

◆ 变数中的值是它最近被指定的值。

◆ 变量用「=」运算子进行指定,变量在左边,要评算求值的表达式在右边。

◆ 变量不需用要在指定之前进行宣告。

◆ 除了目前值的型别之外,变量没有固有的型别。

◆ 指定前就被使用的变量有其默认值。

 以上就是PHP学习宝典-第五章的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。