1. 程式人生 > >PHP學習第一天---大概瞭解PHP是幹什麼的

PHP學習第一天---大概瞭解PHP是幹什麼的

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]."&nbsp;&nbsp;&nbsp;";
}
#預設序號為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();