1. <rp id="zsypk"></rp>

      2. php學習筆記總結

        時間:2022-06-21 20:50:03 學習總結 我要投稿
        • 相關推薦

        php學習筆記總結

          篇一:php學習總結

        php學習筆記總結

          調試/*………*/ //…….#..........

          插入時考慮清楚字段類型避免插入后出現缺值,亂碼

          @ 屏蔽錯誤or die 條件顯示

          以前學習php類的總結:

          1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實現新的重載

          1.1 在子類中調用父類的覆蓋部分可以使用 父類名稱::方法名稱();

          2.final 只能定義類和方法,不能使用final定義成員屬性,因為final是常量的意思,在php里定義常量使用的是define函數

          2.1 final關鍵字標記的類不能被繼承

          2.2 final關鍵字標記的方法不能被子類重寫

          3.const是一個定義常量的關鍵字,在php中定義常量使用的是define()函數,但是在類里定義常量使用的是“const” 這個關鍵字

          3.1在程序中不能修改它的值。

          3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關鍵字,但不使用"$"符號,也不能使用對象來訪問。

          4.static關鍵字可以描述類中的成員屬性和成員方法

          4.1 static 的成員屬于類,而不屬于任何對象,

          4.2 static的成員是在類第一次被加載的時候分配的空間,其他類無法訪問的,只對類的實例共享,能一定程度對類該成員形成保護

          4.3 靜態(tài)成員放到了“初始化靜態(tài)段”,在類第一次加載的時候放入的,可以讓堆內存里的每個對象共享。所以在靜態(tài)方法里,可以使用這個方法所在的類的“類名”,也可以使用“self”來訪問其他靜態(tài)成員。“self”代表這個靜態(tài)方法所在的類。

          4.3.1 在類里的靜態(tài)方法是不能訪問類的非靜態(tài)成員的。

          4.3.2 在類的非靜態(tài)方法里可以訪問靜態(tài)成員:”self:成員屬性“;

          4.4類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣,類似于全局函數。

          4.5 在類內函數訪問靜態(tài)變量時前面加self::靜態(tài)函數

          4.6 靜態(tài)變量可以在類外直接訪問,訪問方法是類名::靜態(tài)變量

          4.7 靜態(tài)函數可以在類外直接訪問,訪問方式是類名::靜態(tài)函數

          4.8 在類內靜態(tài)函數訪問另一個靜態(tài)函數時使用 類名::靜態(tài)函數名

          4.8.1 靜態(tài)函數在類內訪問靜態(tài)變量時,訪問方式是類名::靜態(tài)變量

          4.8.2 靜態(tài)函數在類內訪問靜態(tài)變量時,訪問方式除了是類名::靜態(tài)變量外,還可以使用self::靜態(tài)變量

          4.9 在類內靜態(tài)函數訪問另一個靜態(tài)函數時除了使用 類名::靜態(tài)函數名外,還可以使用self::靜態(tài)函數名,也可以直接調用靜態(tài)函數

          4.10 靜態(tài)函數內不能訪問非靜態(tài)變量

          4.11 在類內靜態(tài)函數不能使用$this->非靜態(tài)函數名訪問非靜態(tài)函數,可以使用self::非靜態(tài)函數名

          4.12

          5.類里的”$this“,在php里面提供了一個本對象的引用$this,每個對象里面都有一個對象的引用$this來代表這個對象,完成對象內部成員的調用。

          5.1 $this 就是對象內部代表這個對象的引用。

          6.類里"self",self 和$this相似,只不過self是代表這個靜態(tài)方法所在的類,所以在靜態(tài)方法里,可以使用這個方法所在的類的”類名“,也可以使用"self"來訪問其他的靜態(tài)成員,通常使用后者”self::成員屬性“。

          7.類里”__“開頭的函數名

          7.1類里”__“開頭的函數名都是在某一時刻不同情況下自動調用執(zhí)行的方法。

          7.2__toString()方法也是自動被調用,是直接輸出對象引用時自動調用的。比如"$p = new Person()",直接用echo輸出$p會產生錯誤,如果在類里定義了__toString()方法,再用echo直接輸出對象引用的時候就不會產生錯誤了

          8.對象串行化

          8.1 __sleep()方法,在對象串行化的時候,會調用一個__sleep()方法來完成一些睡前的事情,__sleep()函數不接受任何參數,但返回一個數組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時被忽略,如果沒有__sleep()方法,php將保存所以屬性.

          8.2 __wakeup()方法,在重新醒來時,即由二進制串重新組成一個對象的時候,則會自動調用__wakeup(),做一些對象醒來就要做的動作。

          8.3 有時你可能需要一個對象在反串行化后立即執(zhí)行. 為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.

          9. protected 成員能被同個類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實例直接訪問。protected and public 可以動態(tài)綁定

          10. private 大部分private屬性仍然可以被外部代碼共享. 解決方法是用一對public方法,一個是get(獲取屬性的值),另一個是set(設置屬性的值).

          10.1 private 不可以動態(tài)綁定。Private成員只存在于它們所在的類內部. 不像public和protected成員那樣,PHP模擬靜態(tài)綁定.

          10.2 什么時候用到private?private成員只有當你不想讓子類繼承改變或特殊化父類的行為時才用到,這種情況比你想像的要少, 通常來說,一個好的對象分層結構應當允許絕大多數功能被子類特殊化,改進,或改變—這是面向對象編程的基礎之一。一定的情況下需要private方法或變量,例如當你確信你不想允許子類改變父類中的某個特定的部份。

          11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個地方但不起作用),它與一般方法不同—沒有任何代碼. 如果類中存在一個或更多抽象方法, 那么這個類就成了抽象類. 你不能實例化抽象類. 你必須繼承它們,然后實例化子類. 你也可以把抽象類看成是子類的一個模板.

          如果你覆寫所有的抽象方法, 子類就變成一個普通的類. 如果沒有覆寫所有方法, 子類仍是抽象的. 如果一個類中中包含有抽象方法(哪怕只有一個), 你必須聲明這個類是抽象的, 在class關鍵字前加上abstract. 聲明抽象方法的語法與聲明一般方法不同. 抽象方法的沒有像一般方法那樣包含在大括號{}中的主體部份,并用分號;來結束.

          12.接口:如果你建立了一個只有抽象方法的類,你就定義了一個接口(interface). 為了說明這種情況, PHP中有interface 和implements關鍵字. 你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個接口. 例如, 你可以寫一個myClass implements myIterface. 這兩種方法可以依個人偏愛來選擇.

          12.1 如果接口中出現非抽象方法.會報錯

          12.2 接口中的方法默認是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.

          12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final

          12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態(tài)方法.

          12.5 在接口中可以有常量,e.g.:

          <?

          interface User{

          const MAX_GRADE = 99;

          function getName();

          function setName($_name);

          }

          ?>

          13.Namespace關鍵字給一塊代碼命名. 在這個代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個代碼塊. 引用靜態(tài)的類成員也是用相同的方法. 在命名空間內代碼不需要聲明命名空間, 它本身就是默認的. 這種方法比添加前綴的方法好. 你的代碼可由此變得更加緊湊和可讀.

          你可能想知道是否可以建立分層的(嵌套的)命名空間. 答案是不可以. 但你可以在命名空間名稱后加上冒號, 你可以再次調用在名稱中不包含冒號的變量,函數和類. 命名空間允許存在冒號,只要不是第一個字符和最后一個字符或接著另一個冒號. 命名空間的名稱中的冒號對于PHP來說沒有任何意義, 但如果你用他們來區(qū)分邏輯上的區(qū)塊, 他們可以很好地說明你的代碼中的父子(parent-child)關系.

          14. __toString()打印對象會調用它的__toString方法.

          15.不能實例化的類

          <?

          //

          //當__construct()為public時可以實例化

          class A{

          private function __construct(){}

          }

          $a = new A();//fail

          ?>

          15.1

          //static的方法留給外部訪問.

          <?

          class A{

          private function __construct(){}

          static function getClassA(){

          return "這里是后門,可以通過這里進入類內部..";

          }

          }

          echo A::getClassA();

          ?>

          15.2

          //不能用new實例化的類.

          //static的方法留給外部訪問.

          //在方法內部返回實例.

          <?

          class A{

          private function __construct(){

          echo "this is construction

          ";

          }

          static function getClassA(){

          $a = new A();

          return $a;

          }

          }

          // 看(轉 載于:www.zaIdian.cOM 在 點 網)到這里確實返回的是 A 的實例.但不是同一個對象.

          $a1 = A::getClassA();

          $a2 = A::getClassA();

          echo "$a1 的類是 ".get_class($a1)." , $a2 是 ".get_class($a1); if($a1 === $a2){

          echo "

          $a1 $a2 指向同一對象.";

          }else{

          echo "

          $a1 $a2 不是一個對象.";

          }

          //this is construction

          //this is construction

          篇二:php學習總結

          $_GET[string] 的介紹,Isset() 和empty()的介紹,數據庫數據類型,

          1.$_GET[string]的介紹

          2.$_GET[string]

          他和$_POST 的區(qū)別在于,當form method=“get”的時候,用來傳值,

          點擊下submit后,URL轉到了接受值的php頁面。但是URL 不是這個頁面的--1.php。而是自動生成的URL。

          顯示的是下面的URL:php?控件名(myname是文本框的控件名)=用戶輸入的值。

          所以說用這個不安全。

          3.Isset() 和empty()的區(qū)別

          Isset()檢查變量值是不是設立了。 Check the variable is set and exists.

          Empty()檢查變量值是不是空。 Check if the variable has contents.

          對于empty(),空有7種可能,Null,0,‘’(空字符串),array(),false,遇到出現上面的7種情況返回true。

          兩個返回的都是布爾值。

          一般情況下用empty()檢查表單中戶輸入的是否是空值。

          用if(!Empty($var))檢查;

          。 "0",0.0

          primary key 主鍵

          4. MYSQL 命令:create table

          命令:注意 column name column type中間沒有逗號,只是空格。

          看下格式

          問題:Cookie 的用法

          已經試過

          5. Setcookie()用于服務端在客戶端創(chuàng)建cookie。

          里面的兩個值是必須的。Name和value。字符串。

          我自己弄的cookie。Setcookie(‘username’,‘admin’);

          在IE9 中按f12 進入開發(fā)者工具中看緩存的cookie信息。

          6. Cookie 的默認時間是當你關掉瀏覽器時就消失。

          可以用時間戳time()+秒表示時間。如:time()

          +(7*24*30*60)表示7天存在。 讀取cookie。用$_cookie[]讀取。方括號里面是string 的cookie名字。

          例子:

          7. mysql 數據類型:用于數據庫中的table下的數據的創(chuàng)建

          8.

          注意下:char()和 varchar() 的區(qū)別: Char(2)只能存一個字符。而且一定是2個。

          Varchar(60)表示能存60個字符。不一定是60個。 一般用這種。

          Date ,日期格式

          time,時間格式

          datetime表示日期和時間格式。

          Dec()表示:DEC(m,n)

          M表示總的位數,n表示小數點后的位數。

          m is the total number of digits and n is the number of digits after the decimal point. Say, you want to store some numbers like the format 9999.9099999. Here the value of m is 11 and that of n is 7.

          DATE - A date in YYYY-MM-DD format, 例如: 1973-12-30.

          DATETIME -in YYYY-MM-DD HH:MM:SS 1973-12-30 15:30:00. TIMESTAMP - This looks like the previous DATETIME format, only without the hyphens between numbers; 3:30 in the afternoon on December 30th, 1973 would be stored as 19731230153000 ( YYYYMMDDHHMMSS ).

          TIME - Stores the time in HH:MM:SS format.

          YEAR(M) - If the length is specified as 4, YEAR can be 1901 to 2155. The default length is 4.

          問題:If.。。Elseif。。。Else

          else ifallows us to keep evaluating using if statements as many times as needed. 可以把elseif看做是另外一個if。

          Use the if....elseif...else statement to select one of several blocks of code to be executed. Syntax

          1 if (condition)

          23code to be executed if condition is true;

          4

          5 elseif (condition)

          6

          7code to be executed if condition is true;

          8

          9 else

          10

          11code to be executed if condition is false;

          問題: php連接mysql()

          回答:四個函數:

          mysql_connect(),mysql_select_db(),mysql_query(),mysql_close().

          相關語法: mysql_connect(),連接服務器。

          resource mysql_connect(string $server,string$username, string$password). 返回值:指定服務器的link identifier;蛘呶闯晒褪莊alse。

          然后用這個連接mysql中的數據庫

          bool mysql_select_db( string $database_name [, resource $link_identifier = NULL ] .

          Mysql_select_db() 用于連接mysql服務器上的數據庫。下面的mysql_query()用來在這個數據庫中執(zhí)行。前面$a=Mysql_select_db()錯誤。 mysql_query()語法:resource mysql_query( string $query [, resource $link_identifier = NULL ] ) 用于給數據庫發(fā)送命令。返回resource,是個結

          篇三:PHP學習總結的一些經驗

          其實我也是一樣很新的新手,上PHP100學習視頻并在論壇里學習其實也就是一個月前的事.雖然早在8月份花過一個星期看完w3school的PHP教 程,了解了許多PHP知識.但始終是缺乏一個與眾多朋友學習和交流的平臺,所以一下子在幾周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100視頻和論壇,不僅可以系統(tǒng)地學習下PHP,更可以和很多朋友一起學習成長這更是件好事.

          在php100視頻中學到了許多,而 論壇中看帖和回帖也更讓我鞏固了學習的知識并讓我學到了很多,這不僅不會讓我又把PHP知識快速忘記(因為工作中用是ASP,而PHP不會在工作中用,所 以忘得快),反而在取得進步的同時,我也能幫助一些人,這也是一樣是學習勝利的過程,我喜歡并享受其中.

          以下是我上論壇以來的回復總結,將不斷持續(xù)總結.希望有利于與我一樣的新手一起成長.

          首先來個,題前語:

          任何的學習,都需要自信,再新的新手也應該拋棄心中的恐懼,有時關鍵在于你心平下來,踏入學習后,你將慢慢化開迷惑,獲得信心,贏取自信!讓我們共同進步.

          ----------

          ==========

          Undefined index問題

          是運行的時候出現類似:Notice: Undefined index: action in D:wampwwwadd.php on line 3 的

          原因:

          可詳參見此帖:http://bbs.php100.com/read.php?tid=15843&page=1#138857

          是 php 配置的事情

          這個錯誤是因為 php 頁面中的變量沒有初始化而導致的!

          可以通過設置PHP.INI搞好,

          也可以在變量前面 加上一個 @ 就可以解決這個地方的問題了!

          如這里指示第三行

          Notice: Undefined index: action in D:wampwwwadd.php on line 3

          那么找到第3行加上@

          if (@$_GET['action']=='save') {

          你再運行下,發(fā)現還有提示,但行號變了,那么你再在行號對應的未初始化的變量前加@即可解決

          一勞永逸的辦法是在 php.ini 中的 error配置下錯誤顯示方式

          估計你里邊的error_reporting=E_ALL

          把error_reporting這個設為

          error_reporting = E_ALL & ~E_NOTICE

          別忘了改動后,重啟下APCHE服務器,才會生效

          這樣,以后就不用在這種情況下加@了

          -

          具體參考下這個設置下http://edu.codepub.com/2009/0617/6463.php

          ----------

          ==========

          遇到頁面明確提示你錯誤的,并有顯示如何錯的,建議先把語句復制部分重點詞句或全部語句到百度或

          google,更快速讓在你排查錯誤找到方法.其實這也是一種高效有益的學習方法,畢竟在工作中,遇到些沒

          遇過的新問題,有時都需要借助網上的資源給自己靈感和助力,本人就一天不下幾十次用百度搜索.

          如程序中遇到諸如含提示:

          顯示的錯誤為:

          Parse error: syntax error, unexpected $end in D:wampwww estlist.php on line 21

          那么你就可以把 syntax error, unexpected $end 作為關鍵詞到百度搜索,那么你即刻可以得到助力甚

          至答案.以上那句舉例的錯誤是因為:短標簽沒有打開.解決方法是打開php.ini把short_open_tag短標簽

          打開,重啟服務即可

          ----------

          ==========

          提示的時候,有時順便把代碼帖上帖子是必要的,這樣才能快速地在別人的幫助下問題得到解決

          ----------

          ==========

          對單引號和雙引號有迷惑,大家可以看這篇文章解下惑:

          ----------

          ==========

          在調試程序時,經常要用到echo 你的sql語句來,檢查傳值后,sql變成了什么樣的情況,以便排查錯誤.

          ----------

          ==========

          向數據庫表插入數據

          INSERT INTO 語句用于向數據庫表添加新紀錄。

          語法

          INSERT INTO table_name VALUES (value1, value2,....)--此種情況是需要按你表中所有字段的順

          序全部value填上!

          您還可以規(guī)定希望在其中插入數據的列:

          INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) --張老師明確建

          議用此種方法!

          ----------

          ==========

          有人疑惑,$_POST或$GET取得時的引號問題:其實是要不要引號,單引號或雙引號都是沒有問題的.

          如, $_POST[name]和$_POST['name']和$_POST["name"]都是在windows下一樣的,在linux下情況具體沒

          用過,不知道,還望高手告知.

          ----------

          ==========

          針對多數人的留言板課程中許多問題(如, into存不進數據問題)的總結:

          1.檢查你數據庫表的結構是否正確,如id是否設為自增

          2. into語句是否正確,如單詞是否正確, into ... values ...

          3.是否將`(反斜點,在1鍵前)號和'(引號)是否使用位置正確,正確的方法是:`應該放在表和字段邊,而'

          是放在字符串型(或者說是非數字型)的值邊上

          4.檢查你的各語句,是否在結尾將分號(;)正確結束

          5.檢查你的submit表單項的name值是否你判斷的取值,如<input type="submit" name="submit"

          value="提交">時,你的判斷是否提交應是 if ($_POST[submit]){...} ;當你的是<input

          type="submit" name="othername" value="提交">時,你的判斷是否提交應是 if ($_POST

          [othername]){...}

          6.檢查你的$_POST是否大寫,當你寫成$_post是不行的,因為$_GET,$_POST等,都是PHP系統(tǒng)環(huán)境的硬性用

          法

          7.用echo 輸出你的sql檢查傳值情況

          8.檢查你的短標簽是否打開

          9.注意你的method是get還是post

          10.檢查你的表單相關單詞或引號是否書寫正確.很多莫名其妙的問題,多是細節(jié)問題.要小心查對才能看

          出來.

          ----------

          sql語句中表名和字段名在windows的情況下是可以不加小斜點(鍵盤左上角1鍵前的那個點鍵)的,但聽說

          在linux中不加會引出些問題,兼容的寫法是有小斜點.

          如:windows下:

          $sql="select * from table "

          和

          $sql="select * from `table` "

          是效果一樣的

          再次重點提示是:

          `(反斜點,在1鍵前)號和'(引號)使用位置,正確的方法是:`應該放在表和字段邊,而'是放在字符串型(或

          者說是非數字型)的值邊

          ----------

          ==========

          php100第十三講的page.PHP中的翻頁顯示信息有問題的解決方法:

          因為頁面沒有取值到URL值的page,所以在函數內的page會一直是1,所以會一直是第1頁的數據

          解決方法,就是在調用函數前把page取得就好了!函數里會把取到的page值作為全局變量傳入函數使用的

          了!

          include("conn.php");

          $nump=mysql_query("SELECT * FROM `test`");

          $total=mysql_num_rows($nump);

          //調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所

          以省略掉)。

          $page=$_GET[page]; //------------------------------在這里加入這行就OK了!

          _PAGEFT($total,5);

          echo $pagenav;

          $query=mysql_query("SELECT * FROM `test` limit $firstcount,$displaypg ");//---見下面 while($row=mysql_fetch_array($query)){

          echo "

          ".$row[name]." | ".$row[sex];

          }

          以上的

          調試方法,其實你只要學下張老師把sql語句輸出來看下,你就知道是怎么回事了!

          echo $sql="SELECT * FROM `test` limit $firstcount,$displaypg ";

          $result=mysql_query($sql);

          ----------

          ==========

          分頁有問題的朋友,不妨看下如下:

          關于分頁,這有一篇論壇朋友的學習心得,學習下,你也許有所得:

          另有一篇本人轉發(fā)上去的分頁講解:

          ----------

        【php學習筆記總結】相關文章:

        手繪學習筆記評課06-20

        php程序員轉正申請書04-07

        學習的總結11-06

        大學三年學習總結-學習總結12-21

        外出參觀學習總結3篇-學習總結12-21

        讓學引思學習總結范文-學習總結12-21

        有關寫大學學習總結-學習總結12-21

        教師外出學習總結-學習總結12-23

        小學數學學習總結3篇-學習總結12-21

        初中語文國培學習總結-學習總結12-21

        99热这里只有精品国产7_欧美色欲色综合色欲久久_中文字幕无码精品亚洲资源网久久_91热久久免费频精品无码
          1. <rp id="zsypk"></rp>