日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP学习笔记1

發布時間:2024/4/13 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP学习笔记1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

PHP基礎知識

? ? PHP使用<?php ... ?>內嵌于html中, 使用echo輸出html語句. 例如:

<?phpecho '<p>Order processed.</p>'; ?>

????通常, 在form表單中獲取的變量值存儲在$_POST, $_GET, $_REQUEST. 其中submit為GET存儲在$_GET中, 為POST存儲在$_POST中, 默認都存儲在$_REQUEST中.

? ? 而PHP中變量以"$"開頭.

一個實際例子:

orderform.html:

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body><form class="" action="info.php" method="post"><table border="0"><tr bgcolor="#cccccc"><td width="150">Item</td><td width="50">Quantity</td></tr><tr><td>Tires</td><td align="center"><input type="text" name="tireqty" size="3" maxlength="3" /></td></tr><tr><td>Oil</td><td align="center"><input type="text" name="oilqty" size="3" maxlength="3" /></td></tr><tr><td>Spark Plugs</td><td align="center"><input type="text" name="sparkqty" size="3" maxlength="3" /></td></tr><tr><td colspan="2" align="center"><input type="submit" value="Submit Order" /></td></tr></table></form></body> </html>

info.php:

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body><?php $tireqty = $_POST['tireqty'];$oilqty = $_POST['oilqty'];$sparkqty = $_POST['sparkqty'];echo '<p>Your order is as follows: </p>';echo $tireqty.' tires<br />';echo $oilqty.' bottles of oil<br />';echo $sparkqty.' spark plugs<br />';?></body> </html>

這里, 變量和字符串使用點號(".")進行連接. 而如果在雙引號中, 則變量會被解釋, 例如:

echo $tireqty.' tires<br />';

等價于:

echo "$tireqty tires<br />";

但單引號中一切都認為是字符串.

? ? 使用define語法定義常量:

define('PI', 3.1415926);

理解PHP變量:

$GLOBALS: 全局變量數組.

$_SERVER: 服務端變量數組.

$_GET: 使用GET方法傳遞過來的變量.

$_POST: 使用POST方法傳遞過來的變量.

$_COOKIE: 所存儲的cookie變量數組.

$_ENV: 環境變量數組.

$_REQUEST: $_GET/$_POST/$_COOKIE的集合.

$_SESSION: session變量的數組.

在變量引用方面, PHP使用"&"來解決:

$a = 5; $b = $a; $a = 7; // $b依舊等于5

而如果使用了"&":

$a = 5; $b = &$a; $a = 7; // 則$b也等于7

使用unset來解除變量所關聯的引用:

unset($a);

在``字符內可填寫: 可執行的操作:

$out = `ls -la`; echo '<pre>'.$out.'</pre>';

而instanceof用于判斷一個對象是否是一個特定類的實例:

class sampleClass{}; $myObject = new sampleClass(); if ($myObject instanceof sampleClass)echo "myObject is an instance of sampleClass";

使用gettype/settype來讀取/設置變量的類型:

$a = 56; // integer echo gettype($a).'<br />'; settype($a, 'double'); // double echo gettype($a).'<br />';

而PHP也提供了如下函數用于判斷變量類型:

is_array()/is_double()/is_float()/is_real()/is_long()/is_int()/is_integer()/is_string()/is_bool()/is_object()/is_resource()/is_null()/is_scalar()/is_numeric()/is_callable()

三個特殊的測試函數:

isset(): 判斷變量是否存在.

unset(): 刪除變量.

empty(): 判斷變量是否為空.

使用數組

使用array進行數組的初始化:

$arr = array(1, 2, 3, 4, 5);

而循環數組既可以使用for, 也可以使用foreach:

$arr = array(1, 2, 3, 4, 5); for ($i = 0; $i < count($arr); $i++) {echo $arr[$i].' '; } echo '<br />'; foreach($arr as $item) {echo $item.' '; }

但PHP的數組實際上為一個map結構.

$arr = array(1, 2);

實際上存儲為:

$arr = array("0" => 1, "1" => 2);

而map型結構, 可使用如下的循環: foreach/each/list

$arr = array("a" => 1, "b" => 2); foreach($arr as $key => $value) {echo $key.' => '.$value.' '; } echo '<br />'; reset($arr); while ($ele = each($arr)) {echo $ele['key'].' => '.$ele['value'].' '; } echo '<br />'; reset($arr); while (list($key, $value) = each($arr)) {echo $key.' => '.$value.' '; }

關聯數組的函數

使用sort函數對數組進行排序:

$arr = array('Tires', 'Oil', 'Spark Plugs'); sort($arr); foreach($arr as $key => $val) {echo $key.' => '.$val.'<br />'; }

而sort函數支持第二個參數, 用于排序的判斷: SORT_REGULAR, SORT_NUMERIC, SORT_STRING.

但如果針對的是map型數組, 則可使用asort(根據value進行排序)和ksort(根據key進行排序):

$arr = array('Tires' => 100, 'Oil' => 10, 'Spark Plugs' => 4); asort($arr); // Spark Plugs => 4 Oil => 10 Tires => 100 foreach($arr as $key => $val) {echo $key.' => '.$val.' '; } echo '<br />'; ksort($arr); // Oil => 10 Spark Plugs => 4 Tires => 100 foreach($arr as $key => $val) {echo $key.' => '.$val.' '; } echo '<br />';

反序情況下, 使用rsort()/arsort()/krsort()即可.

亂序可使用shuffle().

字符串操作和正則表達式

使用trim()/ltrim()/rtrim()去除字符串的空白字符.

strtoupper: 將字符串轉為大寫.

strtolower: 將字符串轉為小寫.

ucfirst: 將字符串的第一個字母大寫.

ucwords: 將字符串中的每個單詞的第一個字母大寫.

explode進行字符串的分割存儲于數組, 而implode/join將數組合并成字符串.

$content = "hello,world"; $arr = explode(',', $content); // hello world for ($i = 0; $i < count($arr); $i++) {echo $arr[$i].' '; } echo '<br />'; $con = implode(',', $arr); // hello,world echo $con;

substr(string str, int start[, int length]): 獲取子字符串.

strcmp()/strcasecmp()/strnatcmp(): 比較字符串.

strlen(): 獲取字符串的長度.

字符串中查找子串: strstr()/strchr()/strrchr()/stristr()

strpos()/strrpos()

替換字符串: str_replace()/substr_replace()

復用代碼和編寫函數

在PHP中可以使用require()或者include()來復用代碼. require()和include()差不多, 唯一的區別在于當失敗時候, require()提示錯誤, 而include()則僅僅警告.

require_once()/include_once()只加載一次文件.

reusable.php:

<?phpecho 'Here is a very simple PHP statement.<br />'; ?>

test.php:

<?phpecho 'This is the main file.<br />';require('reusable.php');echo 'The script will end now.<br />'; ?>

瀏覽器顯示:

This is the main file. Here is a very simple PHP statement. The script will end now.

PHP中, 定義函數的格式為:

function func(){// ... }

傳參部分, 也支持傳遞默認參數:

function my_function($arg1, $arg2=2, $arg3=4) {echo 'arg1:'.$arg1.'<br />';echo 'arg2:'.$arg2.'<br />';echo 'arg3:'.$arg3.'<br />'; }my_function(111, 333);

理解作用域

函數內聲明的變量為局部變量.

函數外聲明的變量為全局變量.

超級全局變量(例如$_POST等)不分局部全局.

使用require()僅僅只是內嵌文件, 并不會影響作用域.

關鍵字global用于定義全局變量.

變量可以使用unset()進行刪除.

function fn() {global $var; $var = 'content'; } fn(); echo $var;

傳參通常分為傳值和傳引用. 正常情況下傳值, 特殊要修改傳入的參數, 則傳引用, 參數前加"&"即可.

?

?

?

?

?

?

?

?

?

?

?

?

?

轉載于:https://my.oschina.net/voler/blog/841346

總結

以上是生活随笔為你收集整理的PHP学习笔记1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。