PHP學習第一天---大概瞭解PHP是幹什麼的
阿新 • • 發佈:2018-12-12
PHP 學習第一天
開始部分
PHP是用什麼寫的?
天神級別的C語言,其語法借鑑了C語言,JAVA,perl
一個網頁如何載入PHP 檔案?
如果一個靜態檔案字尾為html具有相同的php內容,但是頁面也無法解析,因為伺服器會把以html為字尾的檔案當作靜態檔案處理,處理完之後就傳送給客戶端解析,而不需要再繼續呼叫php程式解析php內容,所以並不會發生php內容被處理。這裡又涉及到伺服器程式,例如apache、nginx、tomcat。
Apache software foundation (apache 軟體基金會) 是美國非盈利公司,支援apache的各種軟體專案,例如Apache HTTP Server 免費開源伺服器軟體
Apache HTTP Server 是一種自由免費開源跨平臺的伺服器軟體,大多數被安裝在Linux各種發行版作業系統上。Apache支援各種功能,很多功能都是作為編譯模組實現的。
PHP檔案應該放在檔案的那個部位?
可以外部呼叫也可以嵌入到HTML標籤內部。
網路爬蟲可不可以爬到PHP原始檔?
應該是不會的,因為瀏覽器傳送請求給伺服器然後伺服器傳送給PHP程式,PHP程式執行完,然後傳送給伺服器,伺服器再發送給客戶端,這個中間,原始碼在HTML中是不可見的。除非爆出漏洞,可以通過其它方式獲取。
php能夠 做什麼?
PHP做的東西很多,但目前最常用的作為伺服器的CGI指令碼程式,也可以在命令列中使用。
php的優勢是什麼?
簡單、快速上手?開源免費?開發週期短?
php錯誤型別都有哪些?
- Parse Error (Syntax Error)
- Fatal Error
- Warning Error
- Notice Error
基礎內容
PHP屬於弱型別語言,不同於C/C++、JAVA等強型別語言。不需要使用者提前宣告變數型別,而是有PHP解釋其自動識別資料型別。
PHP中基本型別和大多數面嚮物件語言一樣,整形、浮點數、字串、陣列、資源型別,物件。
在這裡只是簡單的記錄一下陣列和物件的學習:
陣列中的元素型別,可以為任何基本型別。陣列的定義方式以及訪問方式: $books=array("JAVA","C primer plus","C plusplus primer","grammar in use"); echo $books[0]; for($i=0;$i<count($books);$i++) { echo $books[$i]."\t"; #echo $books[$i]." "; } #預設序號為0,1,2,3,4...... #也可以自定義序號 $books=array("name"=>"JAVA","ID"=>"032-112-333-111","price"=>100); echo $books["name"]."\n"; #echo $books["name"]."<br/>"; foreach($books as $key=>$values) { echo $key."=>".$values."\n"; #echo $key."=>".$values."<br/>"; echo "$key => $values \n"; #echo "$key => $values <br/>"; } /* --------------------------------Run--------------------------------- JAVAJAVA C primer plus C plusplus primer grammar in use JAVA name=>JAVA name => JAVA ID=>032-112-333-111 ID => 032-112-333-111 price=>100 price => 100 */ #多維陣列 $books=array( array("name"=>"JAVA","id"=>"031-023-222"), array("name"=>"C primer","id"=>"032-111-332"), array("name"=>"C plusplus primer","id"=>"033-112-321"), array("name"=>"grammar in use","id"=>"123-321-144") ) for($i=0;$i<count($books);$i++) { foreach($books[$i] as $key=>$values) { echo "$key=>$values\n"; } } #or foreach($books as $key=>$value) { echo "array $key\n"; foreach($value as $child_key=>$child_value) { echo $child_key."=>".$child_value."\n"; } } $count_0=count($books,1); $count_1=count($books,0); /* count 統計陣列 元素個數,第二個預設引數為0,表示不遞迴統計多維陣列元素個數。1表示遞迴統計多維陣列個數。 cout($array,1); 計算方式 先遍歷父親陣列個數,再便利子數組裡元素個數,然後兩者進行相加。 如果只想統計一個多維數組裡儲存的值的個數,即可以使用 $count=$count_0-$count_1; */ 物件?感覺很多面向物件語言的物件定義的大同小異。個人感覺只是在C語言中結構體Struct加入了定義方法。對於資料的封裝,以及把一些資料放在一塊,定義成為一個物件,然後物件又可以進行例項化。這點不同與面向過程的函式封裝。而且物件之間又有繼承關係,增加了不少有趣的東西。
大概框架
class mum{
public $name="Mari";
private $age=100;
protected $state="XA";
public function display()
{
echo "Hello, World!\n";
echo "Your ID:".$this->add()."\n";
}
private function add()
{
$acount=$this->name."-".$this->age."-".$this->state;
return $acount;
}
}
$event=new mum();
echo $event->name;
$event->display();