PHP_基礎

来源:http://www.cnblogs.com/Ryan344453696/archive/2016/01/18/5140536.html
-Advertisement-
Play Games

目錄數組函數類和對象字元串操作會話控制時間和日期異常處理一、數組 1、索引數組header("Content-Type: text/html; charset=utf-8");//創建空數組$str = array();//索引數組:數組的鍵是整數的數組,並且鍵的整數順序是從0開始,依次類推。$f....


目錄

 

一、數組

  1、索引數組

header("Content-Type: text/html; charset=utf-8");

//創建空數組
$str = array();

//索引數組:數組的鍵是整數的數組,並且鍵的整數順序是從0開始,依次類推。
$fruit = array("蘋果","香蕉","菠蘿");

//索引數組賦值:
//1.用數組變數的名字後面跟一個中括弧的方式賦值
$arr[0]='蘋果';
//使用=>符號來分隔鍵和值,左側表示鍵,右側表示值。
array('0'=>'蘋果');

//count($arr)返回數組長度

//for迴圈訪問索引數組裡的值
for($i=0; $i<count($fruit); $i++){
    echo "$fruit[$i]<br>";
}

//foreach迴圈訪問索引數組裡的值
foreach($fruit as $k=>$v){
    echo $k."...".$v."<br>";
}

 

  2、關聯數組

header("Content-Type: text/html; charset=utf-8");

//關聯數組:指數組的鍵是字元串的數組
$fruit = array('apple'=>"蘋果", 'banana'=>"香蕉", 'pineapple'=>"菠蘿");

//關聯數組賦值
//1.用數組變數的名字後面跟一個中括弧的方式賦值
$arr['apple']='蘋果';
//2.使用=>符號來分隔鍵和值,左側表示鍵,右側表示值
array('apple'=>'蘋果');

//foreach迴圈訪問關聯數組裡的值
foreach($fruit as $k=>$v){
    echo '<br>水果的英文鍵名:'.$k.',對應的值是:'.$v;
}

 

二、函數

   1.可變函數

//可變函數,通過變數的值來調用函數
function name() {
    echo 'jobs';
}
$func = 'name';
//調用可變函數
$func(); 

 

  2.判斷函數是否存在

function func() {
}
if (function_exists('func')){
    echo 'exists';
}

 

三、類和對象 

//定義一個類
class Car {
    //定義屬性
    public $name = '汽車';
    //定義方法
    public function getName() {
        //方法內部可以使用$this偽變數調用對象的屬性或者方法
        return $this->name;
    }
}
//實例化一個對象
$car = new Car();
//調用對象的方法
echo $car->getName();

//類的屬性
//public:公開的
//protected:受保護的,受保護的屬性不允許外部調用
//private:私有的,私有屬性不允許外部調用

//靜態方法:使用關鍵字static修飾
//靜態方法不需要實例化對象,可以通過類名直接調用,操作符為雙冒號::
class Car {
    public static function getName() {
        return '汽車';
    }
​}
echo Car::getName(); //結果為“汽車”

//構造函數__construct():在每次對象創建的時候調用該函數
//析構函數__destruct():在每次對象銷毀的時候調用該函數
class Car {
    //增加構造函數與析構函數
    function __construct() {
        print "構造函數被調用 \n";
    }
    function __destruct() {
        print "析構函數被調用 \n";
    }
}
$car = new Car();

 

四、字元串操作

  1.單雙引號的區別

//雙引號串中直接包含字串變數
//單引號串中的內容總被認為是普通字元
$str='hello';
echo "str is $str"; //運行結果: str is hello
echo 'str is $str'; //運行結果: str is $str

 

  2.去除字元串首尾的空格

//trim去除一個字元串兩端空格。
//rtrim是去除一個字元串右部空格
//ltrim是去除一個字元串左部空格
trim(" 空格 ");

 

  3.獲取字元串的長度

//英文字元長度
strlen($str);
//中文字元長度
mb_strlen($str,"UTF8");

 

  4.字元串的截取

//英文字元串的截取函數substr()
//substr(字元串變數,開始截取的位置,截取個數)
$str='i love you';
echo substr($str, 2, 4);

//中文字元串的截取函數mb_substr()
//mb_substr(字元串變數,開始截取的位置,截取個數, 網頁編碼)
$str='我愛你,中國';
echo mb_substr($str, 4, 2, 'utf8');

 

 

  5.字元串查找

//strpos(要處理的字元串, 要定位的字元串, 定位的起始位置[可選])
$str = 'I want to study at imooc';
$pos = strpos($str, 'imooc');

 

  6.字元串替換

//str_replace(要查找的字元串, 要替換的字元串, 被搜索的字元串, 替換進行計數[可選])
$str = 'I want to learn js';
$replace = str_replace('js', 'php', $str);

 

  7.字元串的合併與分割

//字元串合併函數implode():把數組元素組合為一個字元串
//implode(分隔符[可選], 數組)
$arr = array('Hello', 'World!');
$result = implode('', $arr);
print_r($result);//結果顯示Hello World!

//字元串分隔函數explode():函數返回由字元串組成的數組
//explode(分隔符[可選], 字元串)
$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//結果顯示array('apple','banana')

 

五、會話控制

  1.cookie  

//設置cookie
//name( Cookie名)可以通過$_COOKIE['name'] 進行訪問
//value(Cookie的值)
//expire(過期時間)Unix時間戳格式,預設為0,表示瀏覽器關閉即失效
//path(有效路徑)如果路徑設置為'/',則整個網站都有效
//domain(有效域)預設整個功能變數名稱都有效,如果設置了'www.imooc.com',則只在www子域中有效
$value = 'test';
setcookie("TestCookie", $value);
//有效期一小時
setcookie("TestCookie", $value, time()+3600);

// cookie的刪除與過期時間
setcookie('test', '', time()-1);

 

  2.session

//先執行session_start方法開啟session
session_start();

//通過全局變數$_SESSION進行session的讀寫。
$_SESSION['name'] = 'jobs';
echo $_SESSION['name'];

//刪除某個session
unset($_SESSION['name']);
//刪除所有session
session_destroy();

 

 六、時間和日期

//UNIX 時間戳:表示從 1970年1月1日 00:00:00 到當前時間的秒數之和。
//函數 time() 來取得伺服器當前時間的時間戳
$time=time();
echo $time;

//date()函數,來取得當前的日期
//date(時間戳的格式, 規定時間戳【預設是當前的日期和時間,可選】)
//設置預設的時區
date_default_timezone_set('Asia/Shanghai');
//輸出1396193923對應的日期
echo date("Y-m-d");

//函數strtotime實現功能:獲取某個日期的時間戳,或獲取某個時間的時間戳
//strtotime(要解析的時間字元串, 計算返回值的時間戳【預設是當前的時間,可選】)
//1398700800,這個數字表示從1970年1月1日 00:00:00 到2014年4月29號經歷了1398700800秒
echo strtotime('2014-04-29');
//1398700801,這個數字表示從1970年1月1日 00:00:00 到2014-04-29 00:00:01時經歷了1398700801秒
echo strtotime('2014-04-29 00:00:01');

 

 

七、異常處理

//創建可拋出一個異常的函數
function checkNum($number){
    if($number>1){
        throw new Exception("異常提示-數字必須小於等於1");
    }
    return true;
}

//在 "try" 代碼塊中觸發異常
try{
    checkNum(2);
    //如果異常被拋出,那麼下麵一行代碼將不會被輸出
    echo '如果能看到這個提示,說明你的數字小於等於1';
}catch(Exception $e){
    //捕獲異常
    echo '捕獲異常: ' .$e->getMessage();
}

//Exception具有幾個基本屬性與方法,其中包括了:

//message 異常消息內容
//code 異常代碼
//file 拋出異常的文件名
//line 拋出異常在該文件的行數

//其中常用的方法有:
//getTrace 獲取異常追蹤信息
//getTraceAsString 獲取異常追蹤信息的字元串
//getMessage 獲取出錯信息

class MyException extends Exception {
    function getInfo() {
        return '自定義錯誤信息';
    }
}

try {
    throw new MyException('error');
} catch(Exception $e) {
    echo $e->getInfo();
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JAXB(Java Architecture for XML Binding) 是一個業界的標準,是一項可以根據XML Schema產生Java類的技術。該過程中,JAXB也提供了將XML實例文檔反向生成Java對象樹的方法,並能將Java對象樹的內容重新寫到XML實例文檔。從另一方面來講,JAXB...
  • 先安照路徑放好如圖。簡單使用無logo:public function qrcode(){ Vendor('phpqrcode.phpqrcode'); //生成二維碼圖片 $object = new \QRcode(); $url='http...
  • index_uploads index_uploads.php "; print_r($_FILES); echo ""; ...
  • 主要界面如下:主要代碼如下:BOOL CEnumProcessDlg::OnInitDialog(){ CDialog::OnInitDialog(); // 將“關於...”菜單項添加到系統菜單中。 // IDM_ABOUTBOX 必須在系統命令範圍內。 ASSERT((I...
  • package com.oumyye.圖片;import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import ...
  • 首先,我的博客地址是http://www.cnblogs.com/naiwenmoer/,這也是我第一篇博客,以前沒想過寫博客,現在有幸加入這個大神遍地飛的園子,還請各位大神多多指教了! c語言作為經典語言,這裡不再多說了.咱從基礎一起探討吧! 一. 定義一個整型,如果作為局部變...
  • 選擇排序演算法的思想類似於冒泡排序,每次從未排序的序列中選出最大或者是最小值,放在數組的頭部或者是尾部。只不過選擇演算法不是像冒泡演算法兩兩進行比較,而是每次迴圈未排序的數組,從中找出最大或者是最小值的索引,然後與未排序的數組的頭部或者尾部進行交換。直到最後只剩未排序數組只剩下一個數時,排序結束。java...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...