5장
구문, 변수 및 출력
이 장의 요점
◆ PHP 프로그램 코드의 기본 규칙 이해
◆ 저장 변수 정보
◆ 웹 페이지에 출력 표시
이 장에서는 PHP의 기본 구문에 대해 설명합니다. 이는 일반적인 형식을 사용하는 모든 PHP 프로그램 코드가 따라야 하는 규칙입니다. 또한 변수를 사용하여 PHP 코드 실행 시 정보를 저장하고 검색하는 방법을 살펴보고 마지막으로 사용자의 브라우저 창에 텍스트를 표시하는 가장 간단한 방법에 대해 설명합니다.
PHP 구문의 느슨함과 유연성
PHP에 대해 가장 먼저 언급할 점은 PHP가 최대한 느슨하고 유연해지려고 노력했다는 것입니다. 프로그래밍 언어는 따라야 할 문법 규칙의 엄격함에 따라 상당히 다릅니다. 선택하는 것이 가장 좋습니다. 이렇게 하면 작성한 프로그램 코드가 정확히 필요한 것인지 확인하는 데 도움이 됩니다. 원자로를 제어하는 프로그램을 작성 중이고 변수 지정을 잊어버린 경우 원래 설계 의도에서 천천히 벗어나는 것보다 프로그램 실행을 거부하는 것이 훨씬 낫습니다. 그러나 PHP의 기본 디자인 원칙은 다른 사양 템플릿을 기반으로 합니다. 왜냐하면 PHP 자체는 빠르고 간단한 웹 페이지를 만들기 위한 도구이기 때문입니다. PHP는 사용하기 쉽게 만드는 것이 아니라 디자이너가 올바르게 사용할 수 있도록 편리하게 만드는 데 중점을 두고 있습니다. . 프로그램은 프로그램 코드의 의미를 지정하기 위해 추가 중복 작업을 수행합니다. PHP에는 프로그램 코드가 거의 필요하지 않지만 프로그램 코드의 의미를 최대한 표현할 수 있습니다. 이는 변수 선언 및 함수 프로토타입과 같이 다른 언어에서 발견되는 특정 구문 기능이 PHP에서 필요하지 않음을 의미합니다.
그럼에도 불구하고 PHP는 사용자가 생각하는 것을 읽을 수 없으며 여전히 사용자가 표현해야 하며 따라야 할 몇 가지 문법 규칙이 있습니다. 원래 생성하려고 했던 웹 페이지 대신에 브라우저 창에 "분석 오류"가 표시된다면, 이는 귀하가 작성한 프로그램 코드가 PHP가 용인할 수 없을 정도로 규칙을 위반했음을 의미합니다.
HTML은 PHP가 아닙니다.
기억해야 할 또 다른 중요한 점은 이 구문은 PHP 내에서만 사용해야 한다는 것입니다. PHP는 HTML에 포함되어 있으므로 이러한 파일에서 각 부분은 각각 PHP 태그에 따라 구별되는 PHP 또는 HTML로 해석됩니다.
PHP 구문은 PHP 내에서만 유효하므로 이 장의 내용은 PHP 모드를 참조한다고 가정합니다. 즉, 대부분의 프로그램 코드 조각은 HTML 웹 페이지에 포함되어 있다고 가정합니다. 마크를 구별하기 위해 마크를 표시합니다.
PHP에는 C 언어의 구문 스타일이 있습니다
세 번째로 이해해야 할 중요한 점은 PHP는 C 언어 스타일과 매우 유사한 프로그래밍 언어라는 것입니다. 독자가 이미 C를 알고 있다면 PHP를 빨리 배울 수 있습니다. 그래도 작동하지 않으면 설명서를 다시 확인하세요. 이 장의 나머지 부분은 아직 C를 모르는 사람들을 위한 것입니다. C 프로그래머라면 이 장의 제목을 빨리 읽으십시오. C에 대해 특별히 작성된 이 책을 참조할 수도 있습니다. 귀중한 시간을 절약해 드립니다.
PHP는 반공백에 민감하지 않습니다
반공백은 프로그래머가 입력하는 화면의 일부로 공백(spacehar), 탭 문자 및 Enter 키(끝 부분)를 포함합니다. 선) 기호) 등 PHP는 이러한 공백에 민감하지 않지만 이것이 공백과 해당 내용이 중요하지 않다는 의미는 아닙니다(사실 PHP 언어에서 "단어 또는 단어"를 구분하는 데 여전히 매우 중요합니다). 공백 수에 관계없이 하나의 공백 문자는 그러한 문자의 수와 동일합니다.
예를 들어 2+2의 합을 $four 변수에 할당하는 아래의 모든 PHP 구문은 동일합니다.
$four=2+2 //단일 공백
$four =2+2; //스페이스 및 탭 키
$four =
2
+
2;
Enter 키의 줄 끝 기호를 공백으로 사용하는 것은 매우 편리합니다. 왜냐하면 구문이 반드시 한 줄에 있어야 한다고 보장할 필요가 없기 때문에 훨씬 더 쉽습니다. 프로그램을 작성합니다.
PHP는 때때로 대소문자를 구분합니다
앞서 언급했듯이 PHP는 지나치게 까다롭지 않습니다. 독자는 때때로 대소문자를 구분한다는 사실에 놀랄 것입니다. 문자). 이는 모든 변수 설정에서 특히 주의해야 합니다. 이 프로그램 코드를 HTML 페이지에 삽입하는 경우:
<?php $capital=67; Print(“Variable capital is $capital<BR>”); Print(“Variable CaPiTaL is $ CaPiTaL<BR>”); ?>
출력 결과는
가변 자본금은 67
가변 CaPiTaL은
변수들이 대소문자를 다르게 하여 두 개로 나누어진 것입니다. 다른 변수. (놀랍게도 기본 디버깅 설정에서는 이와 같은 프로그램 코드 조각은 PHP 오류를 생성하지 않습니다. 이 장 뒷부분의 "지정되지 않은 변수" 섹션을 참조하세요.)
반면에 PHP는 C 언어와 다릅니다. 함수 이름은 기본 구문 구조(if, then, else, while 등)와 마찬가지로 대소문자를 구분하지 않습니다.
설명 문은 세미콜론으로 끝납니다.
다음은 $greeting 변수에 문자열을 할당하는 PHP의 일반적인 문입니다.
$greeting = "Welcome to PHP!";
이 섹션의 나머지 부분에서는 더 작은 구성 요소에서 이러한 명령문을 구성하는 방법과 PHP 인터프리터가 표현의 평가 작업을 수행하는 방법(이미 매우 작은 경우)을 소개합니다. 이러한 명령문과 표현에 익숙하다면 이 내용을 건너뛰어도 됩니다.)
PHP의 최소 구조는 숫자(3.14159), 문자열(?tow?), 변수($tow), 상수(TRUE), 구성하는 특수 단어 등 분할할 수 없는 토큰입니다. PHP 자체의 구문(if, else 등)은 공백과 기타 특수 문자(예: 대괄호 및 중괄호)로 구분됩니다.
PHP에서 가장 복잡한 구조는 [값]과 태그를 조합한 표현식입니다. 단일 숫자는 표현식이고 단일 변수는 표현식입니다. 일반적으로 표현식 사이에 연산자를 추가하거나(예: 2+(2+2)) 표현식을 입력(예: pow(2*3, 3*2)). 두 개의 입력을 받는 표현식 번호는 입력으로 처리되므로 입력이 있는 함수는 입력을 함수 이름 뒤에 괄호 안에 넣고 입력(매개변수라고 함)은 쉼표로 구분됩니다.
표현식 평가 작업
PHP 인터프리터가 프로그램 코드에서 표현식을 발견할 때마다 해당 표현식이 즉시 평가됩니다. 이는 PHP가 표현식의 가장 작은 요소의 값으로 시작한 다음 표현식의 전체 값이 생성될 때까지 연산자나 함수로 연결된 이 값을 계속 결합한다는 것을 의미합니다. 예를 들어 판단 과정의 각 단계는 상상적으로 다음과 같아야 합니다.
$result=2*2+3*3+5
(=4+3* 3+5; )//가상추정과정
(=4+9+5)
(=13+5)
(=18)
결과 $result 변수에 저장된 숫자 18이 됩니다.
우선순위, 연관성 및 평가 순서
PHP 표현식 평가에는 두 가지 유형의 문제가 있을 수 있습니다. 하위 표현식이 결합되거나 결합된 경우 평가 순서는 무엇입니까? 예를 들어, 방금 표시된 평가 평가 프로세스에서 곱셈은 덧셈보다 더 밀접하게 연관되어 최종 결과에 영향을 미칩니다.
조합식을 연산하는 구체적인 방법을 우선순위 규칙이라고 합니다. 우선순위가 높은 연산자는 먼저 연산을 위해 주변의 다른 식을 얻습니다. 필요한 경우 이러한 규칙을 기억하십시오. 예를 들어 [*]는 항상 [+]보다 우선순위가 높습니다(이러한 규칙에 대한 자세한 내용은 후속 장에서 설명). 또는 다음 기본 규칙을 사용하십시오. 확실하지 않은 경우 괄호를 사용하여 표현식을 결합하십시오.
예:
$resultl=2+3*4+5//결과는 19
$result2=(2+3)*(4+5 )/ /결과는 45입니다.
연산자 우선순위 규칙은 표현식이 결합되는 방식에 대한 모호성을 없애줍니다. 하지만 연산자의 우선순위가 동일하면 어떻게 될까요? 예를 들어 다음 표현식을 고려해보세요.
$how_much=3.0/4.0/5.0;
이 표현식이 0.15인지 3.75인지는 어떤 나누기 연산자가 4.0을 먼저 처리하는지에 따라 달라집니다. 온라인 지침에는 연관성 규칙의 전체 목록이 있지만 기억해야 할 가장 중요한 규칙은 연관성이 일반적으로 왼쪽에서 오른쪽으로 순서가 있다는 것입니다. 즉, 위의 표현식은 의 왼쪽 나눗셈 연산자로 인해 0.15로 평가됩니다. 두 나눗셈 연산자가 우선권을 갖습니다.
마지막 질문은 평가 순서인데, 이는 연관성과 동일하지 않습니다. 예를 들어, 다음 산술 표현식은 다음과 같습니다.
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)!