背景
今天把PHP的基本語法結構熟悉了一下,包括:變量、類型、常量、運算符、字符串、作用域和函數等,本文列舉一些我需要強化記憶的結構(和C#不同)。
一些個性化的結構
foreach結構
1 <?php 2 $array = array("a"=>1, "b"=>2); 3 4 foreach($array as $value) { 5 echo "value$value<br/>"; 6 } 7 8 foreach($array as $key=>$value) { 9 echo "$key=>$value<br/>"; 10 } 11 ?>
1 value1 2 value2 3 a=>1 4 b=>2
global和static作用域
- 在函數外聲明的變量都屬於全局作用域,函數內的$global $var相當於$var = $Globals["var"]。
- static作用域的變量在函數首次調用的時候執行初始化,函數執行完不會清理,后續的函數調用不會再執行初始化。
1 <?php 2 $global_x = 0; 3 4 function scope_test() { 5 static $count = 0; 6 global $global_x; 7 8 $count++; 9 $global_x++; 10 11 echo "$count, $global_x<br/>"; 12 } 13 scope_test(); 14 scope_test(); 15 ?>
1 //輸出內容 2 1, 1 3 2, 2
變量的變量
1 <?php 2 $name = "Tom"; 3 $$name = "I am tom"; 4 5 echo $$name."<br/>"; 6 echo $Tom."<br/>"; 7 ?>
1 I am tom 2 I am tom
常量定義
1 <?php 2 define("HAPPY", "幸福"); 3 4 echo HAPPY."<br/>"; 5 ?>
1 //輸出內容 2 3 幸福
字符串插入
1 <?php 2 $name = "Tom"; 3 $$name = "I am tom"; 4 5 echo "$Tom,${$name},{$$name}<br/>"; 6 ?>
1 I am tom,I am tom,I am tom
heredoc
1 <?php 2 echo <<<DOC 3 段 4 光 5 偉 6 DOC; 7 ?>
1 //輸出內容 2 3 段 光 偉
函數級別的作用域
1 <?php 2 for($i = 1; $i <= 10; $i++) { 3 } 4 5 echo $i; 6 ?>
1 //輸出內容 2 3 11
函數返回多個結果
1 <?php 2 function muti_return() { 3 return array(1, 2); 4 } 5 6 list($x, $y) = muti_return(); 7 8 echo"($x, $y)"; 9 ?>
1 //輸入內容 2 3 (1, 2)
備注
還有一個問題我不是很明白,明天得查查資料,這個問題是:PHP的內存是如何分配和管理的?