1、PHP開始和結束標誌
PHP用<?php
表示起始,並以?>
表示結束。大多數嵌入式腳本語言都是以這樣的模式嵌入到HTML中,例如CSS、ASP、JSP、JS等。
PHP解析一個文件時,會尋找開始和結束標誌,告訴PHP開始和停止解釋其中的代碼。當PHP碰到結束標誌時,會簡單的將其後的內容原樣輸出,所以一個HTML文檔中可以嵌入任意多個PHP標誌。
##下邊內容不重要,瞭解即可。
除了上述PHP開始和結束標誌外,還<? ?>
、<% %>
、<script language="php"></script>
等,在頁面中嵌入存變量時,還可以用<?=$name ?>
,另外<?php ?>
和<script language="php"></script>
總是可用的,其他的可以在php.ini中打開開關。
值得注意的是:
1、在php.ini中開啓asp_tags,才能使用。<% %>
在php7中已不再支持,不建議使用。
2、<? ?>
會干擾XML文檔聲明,一般是禁用的,可以在php.ini中開啓short_open_tag配置,或者在php編譯時加入–short_open_tag選項後纔可以使用。不建議使用。
3、強烈建議使用標準的<?php ?>
開始結束標誌。
4、只含有php腳本的文件,不允許結束標誌?>
存在,這樣做可以防止結尾被意外注入,從而導致當使用header()、setCookie()、session_start()等設置頭信息的函數是發生失敗。原因:當一個php文件加載另一個php文件時,如果該文件的結束標誌?>
後邊含有空格“ ”,那麼在加載該文件後邊使用設置頭信息的函數會發生錯誤。因爲這些函數不允許前面出現空格。另外這些含有結尾標誌的腳本,會原樣輸出結束標誌?>
後邊的空格。
PHP標記內的空格,解釋時會自動忽略。
eg:
文件a.php
<?php
// anycode here
?>
[回車]
[回車]
文件b.php
<?php
ob_start();
include_once 'a.php';
$con = ob_get_contents();//此函數返回輸出緩衝區的內容,或者如果輸出緩衝區無效將返回FALSE 。
ob_clean();
var_dump($con)
?>
執行b.php文件會輸出string(4) " "。
2、指令分隔符分號
PHP每個指令後需要英文分號結束,php的結束標誌?>
隱含表示了一個分號,所以在一個php代碼中的最後一行可以不用分號結束。
eg1:
<?php echo "123"?> //最後的結束標記隱含表示了一個分號,所以這裏可以不用分號結束
eg2:
<?php
echo "123"; //這是一個php指令,後面一定要加上分號表示結束
3、程序註釋
註釋在程序設計中是相當重要的一部分。註釋的內容會被Web服務器引擎忽略不會被解釋執行。註釋一定要寫在代碼上邊或者右邊,千萬不要寫在代碼的後邊。
1)註釋的作用:
①說明代碼的作用,給閱讀提供幫助,不管是自己還是他人,方便日後的維護。
②註釋當時覺得不合適的代碼,便於以後想使用時,打開註釋即可
③用於調試
2)註釋分類:
①單行註釋。主要有兩種,分別是“//”和“#”。
②多行註釋。以“/*
"開始和“*/
”結束。多行註釋無法嵌套多行註釋,但是單行註釋和多行註釋是可以互相包含的。
eg1:
下面就是多行註釋嵌套多行註釋的錯誤示例。
<?php
/*
echo 123;/*在多行註釋裏邊嵌套多行註釋是不行的*/
*/
3)註釋注意事項
註釋只會註釋掉結束標誌之前的內容,不會註釋掉結束標誌“?>”
eg:
下邊"?>"不會被註釋掉
<?php
echo 123;
//?>
4)規範註釋
PHPDocumentor工具,會促使你規範註釋,對已有的規範註釋可以快速生成具有相互參照,索引等功能的API文檔。多行註釋一般使用"/**
"開始“*/
”結束。我們常見的註釋中有@param大概也是因爲該工具,儘管你沒有使用該工具。
eg:
規範的多行註釋
<?php
/**
* 設置當前請求的調度信息
* @access public
* @param array|string $dispatch 調度信息
* @param string $type 調度類型
* @return void
*/
public static function dispatch($dispatch, $type = 'module'){
...
}