答:
echo 用于輸出變量或字符串,他是一個php語句,并非一個函數,所以他并不存在返回值。
print 同echo一樣 print也不是一個函數 因此無需對其使用括號,但print稍慢于echo,需要注意的是使用print() 加上括號時會返回1。
printf()函數用于輸出格式化字符串,sprintf()函數返回一個格式化后的字符串,而不是輸出。
print_r()函數用于打印關于變量的易于理解的信息。
var_dump()函數用于打印變量的內容,類型,長度等。
<?phpecho "aaa ","bbb ","ccc "; //aaa bbb cccecho("aaa"); //aaa//echo("aaa","bbb");//會報錯,不可以傳遞多個參數。print "aaa"; //aaa$a = print("aaa"); //$a = 1$str = "aaa";$b = print_r($str); //打印輸出 ,并返回1.echo $b; // 1$b = print_r($str,true); //不打印輸出,將$str作為返回值。echo $b; // aaaprintf("My name is %s %s","朱","孝遠"); //My name is 朱 孝遠//在s前添加1/$或2/$...表示后面的參數顯示的位置printf("My name is %s %1/$s","朱","孝遠"); //My name is 朱 朱sprintf("My name is %s %s","朱","孝遠"); //沒有任何輸出$c = sprintf("My name is %s %s","朱","孝遠");echo $c; //My name is 朱 孝遠2、表單中get與post提交方法的區別。
答:get是發送請求HTTP協議通過url參數傳遞進行接收,而post是實體數據,可以通過表單提交大量信息。
3、session與cookie的區別。
答:session:存儲用戶訪問的全局唯一變量,存儲在服務器上的PHP指定的目錄中的(session_dir)的位置進行的存放。
cookie:用來存儲連續訪問一個頁面時所使用,是存儲在客戶端,對于Cookie來說是存儲在WIn的Temp目錄中。
兩者都可通過時間來設置時間長短。
4、禁用Cookie后,Session還可以用嗎,有什么解決方案?
第一種:通過url傳值,把session_id附加到url上。(缺點:整個站點中不能有純靜態的頁面,因為純靜態頁面session_id將無法繼續傳到下一頁面)
第二種:通過隱藏表單,把session_id放到表單的隱藏文本框中同表單一塊提交。(缺點:不適用<a>標簽之中直接跳轉的非表單的情況)
5、HTTP和HTTPS的區別。
答:HTTP效率更高,HTTPS安全性更高。
HTTP:超文本傳輸協議,信息明文傳輸,是互聯網上應用最為廣泛的網絡協議。HTTP使用的端口號是80,HTTP協議是無狀態的(所以采用session或cookie去標識用戶狀態)。
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
HTTPS使用的端口443,HTTPS協議需要到ca申請證書,一般免費的證書很少,需要交費。
6、數據庫中的事務是什么?事務的四個特性?
答:事務是指用戶定義的 一個數據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
事務具有4個特征:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這4個特性簡稱為ACID特性。
原子性:事務是數據庫的邏輯工作單位,事務中包括的諸操作要么都做,要么都不做。
一致性:事務執行的結果必須是使數據庫從一個一致性狀態變到了一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。
持續性:持續性也稱永久性,指一個事務一旦提交,它對數據庫中的數據的改變就應該是永久的。
7、索引的最左前綴原則?
答:也是最左優先,比如為name,age,city三個列建立多列索引,相當于創建了name和name,age組合索引和name,age,city的組合索引。如果where條件選擇的是age and city 或 age 、city這些字段來查,則不會使用到索引,會遍歷全表查找。一般情況下,where子句中使用最頻繁的一列放在最左邊。
8、MySQL存儲引擎MyISAM與InnoDB區別。
答:Mysql中有很多引擎,InnoDB和MyISAM是最常使用的兩種,其中MyISAM是MySql默認存儲引擎。
事務:InnoDB支持事務功能,MyISAM不支持并且MyISAM的執行速度更快且性能更好。
數據操作語言:MyISAM引擎適合執行大量select操作,InnoDB引擎適合執行大量的inset或update操作。
鎖機制:MyISAM鎖的粒度是表級即表級鎖,InnoDB支持行級鎖定即行級鎖。
物理結構:MyISAM表存放在三個文件中:frm文件存放表格定義,數據文件是MYD(MyData),索引文件是MYI(MYIndex)。
InnoDB表由共享空間、日志文件組(rado文件)、表結構定義文件組成。若將innodb_file_pre_table設置為on,則系統將為每個表單獨生成一個table_name.ibd的文件,在此文件中存儲與表相關的數據、索引、表的內部數據字典信息等。
索引:MyISAM支持全文類型索引,InnoDB不支持全文索引。
查詢表的行數:比如執行select count(*) from table ,MyISAM引擎,表的行數存儲在表中,沒有使用where條件 可以直接讀取出保存好的行數,所以效率較高。
InnoDB中不保存表的具體行數,需要掃描一遍整個表來計算多少行,所以效率較低。
總結:MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。如果應用中需要大量使用select查詢,那么MyISAM是更好的選擇。
InnoDB用于事務處理應用程序,具有眾多特性,包括ACID事務。如果應用中需要執行大量的insert或update操作,則應該使用InnoDB。
新聞熱點
疑難解答
圖片精選