PHP學習筆記1

1.什么是PHP?

  • Hypertext Preprocessor(超文本預處理語言)。

  • 是腳本語言。

  • 是最流行的網站開發語言。

2.PHP能做什么?

  • 可以生成動態頁面內容。

  • 可以創建、打開、讀取、寫入、關閉服務器上的文件。

  • 可以手機表單數據。

  • 可以發送和接收cookies。(儲存在用戶本地終端上的數據)

  • 可以添加、刪除、修改數據庫中的數據

  • 可以限制用戶訪問一些頁面。

  • 可以加密數據

3.PHP基本語法

  • PHP腳本以<?php開始,以?>結束。

  • PHP文件的默認擴展名為“.php”。

  • PHP用分號來分割語句。

  • 變量以$開始,后面跟著變量名稱:

1 $first = "Hello World";
  • PHP中的注釋:

    a.單行注釋:

1 //、#

    b.多行注釋:

1 /*...*/

?

4.PHP變量作用域

變量的作用域是腳本中可被引用的部分。

  • local

  • global

  • static

  • parameter

5.局部和全局作用域

 所有在函數外部定義的變量,擁有全局作用域。除了函數外,全局變量可以被腳本中的任何部分訪問,但是要在一個函數中訪問一個全局變量,需要使用global關鍵字。

 1 <?php
 2 $x=5;
 3 $y=10;
 4  
 5 function myTest()
 6 {
 7     global $x,$y;
 8     $y=$x+$y;
 9 }
10  
11 myTest();
12 echo $y; // 輸出 15
13 ?>

PHP 將所有全局變量存儲在一個名為 $GLOBALS[index] 的數組中。 index 保存變量的名稱。這個數組可以在函數內部訪問,也可以直接用來更新全局變量。

 1 <?php
 2 $x=5;
 3 $y=10;
 4  
 5 function myTest()
 6 {
 7     $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
 8 } 
 9  
10 myTest();
11 echo $y;  // 輸出15
12 ?>

6.Static作用域

當一個函數完成時,所有變量通常都會被刪除,但是加上static可以使其完成運算之后被保留下來。

 1 <?php
 2 function myTest()
 3 {
 4     static $x=0;
 5     echo $x;
 6     $x++;
 7 }
 8  
 9 myTest();      // 每次調用時變量將保持前一次的值
10 myTest();      // 該變量仍然是局部變量
11 myTest();      // 輸出012
12 ?>

?

7.參數作用域

參數是通過調用代碼將值傳遞給函數的局部變量。

參數是在參數列表中聲明的,作為函數聲明的一部分:

1 <?php
2 function myTest($x)
3 {
4     echo $x;
5 }
6 myTest(5);
7 ?>

?

8.輸出方式

兩個基本輸出方式:

echo:可以輸出一個或者多個字符串。(輸出速度快,沒有返回值)

1 <?php
2 echo "<h2>It's a good story</h2>";        //可以加html標簽
3 echo ("How's it going?");                 //echo()=echo
4 ?>

print:只允許輸入一個字符串,返回值總為1。

?

9.PHP常量

常量是一個簡單值得標識符,在腳本中不能改變。

設置語法:

1 bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

三個參數:

  • name:必選,常量名,也是標識符。

  • value:必選,常量的值。

  • case_insensitive:可選。如果設置為true,則大小寫不敏感,默認敏感。

1 <?php
2 define ("Alcohol","Pads");   //大小寫敏感
3 echo Alcohol;            //輸出Pads
4 echo '</br>';
5 echo alcohol;            //輸出alcohol
6 ?>
1 <?php
2 define ("NIVEA","protection",true);     //大小寫不敏感
3 echo NIVEA;
4 echo "</br>";
5 echo nivea;             //都輸出protection
6 ?>

?

10.PHP并置運算符

PHP只有一個并置運算符,“.”:(用于把字符串連接起來)

1 <?php
2 define ("NIVEA","protection");
3 
4 $txt1="protect your skin";
5 $txt2="from the sunlight!";
6 
7 echo nivea . " " . ":" . " " . $txt1 . " " . $txt2;
8 //nivea : protect your skin from the sunlight!
9 ?>

?

?

11.strlen(),strpos()函數

strlen():計算字符串長度。

strpos():計算字符串出現的第一個匹配位置

1 <?php 
2 echo strpos("Hello world!","world"); 
3 ?>

?

12.PHP遞增、遞減運算符

?

?

13.比較運算符

?

注:var_dump()函數不僅可以返回值,還可以返回值的類型。

?

14.數組運算符

?

?

15.三元運算符

1 (expr1) ? (expr2) : (expr3)

對 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

自 PHP 5.3 起,可以省略三元運算符中間那部分。表達式 expr1 ?: expr3 在 expr1 求值為 TRUE 時返回 expr1,否則返回 expr3。

 1 <?php
 2 $name = "Annika";
 3 //普通寫法
 4 $username = isset($name) ? $name : 'no name';
 5  // PHP_EOL是一個兼容不同平臺的換行符,提高代碼可移植性
 6 echo $username, PHP_EOL;         
 7 
 8 //5.3之后的寫法
 9 $username = $name ?: 'no name';
10 echo $username;
11 ?>

在 PHP7+ 版本多了一個 NULL 合并運算符 “??”:

1 <?php
2 // 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值
3 $username = $_GET['user'] ?? 'nobody';
4 ?>

?

?

16.運算符有優先級,但是用括號可以增加代碼可讀性

 1 <?php
 2 // 優先級: &&  >  =  >  and
 3 // 優先級: ||  >  =  >  or
 4  
 5 $a = 3;
 6 $b = false;
 7 $c = $a or $b;
 8 var_dump($c);          // 這里的 $c 為 int 值3,而不是 boolean 值 true
 9 $d = $a || $b;
10 var_dump($d);          //這里的 $d 就是 boolean 值 true 
11 ?>

?

轉載于:https://www.cnblogs.com/annika/p/8541693.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453320.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis在windows下的配置

原文:Redis在windows下的配置 Redis在windows下的配置&#xff08;在windows-64下安裝redis&#xff0c;請參考微軟redis的github&#xff1a;https://github.com/MSOpenTech/redis/releases&#xff09;下面是windows32的配置 下載地址http://files.cnblogs.com/files/cuiweny…

linux磁盤符變化autofs,Linux基礎教程學習筆記之Autofs自動掛載

Linux基礎教程學習筆記之Autofs自動掛載Autofs自動掛載&#xff1a;yum -y install autofsvim /etc/auto.master 在文件中添加下面行/home/guests /etc/auto.tianyunvim /etc/auto.tianyun 子掛載點監控ldapuser0 -rw,sync classroom:/home/guests/ldapuser0systemctl enable …

二叉樹的遞歸遍歷(先序,中序,后序)

#include "stdio.h" #include "malloc.h" #define M 100 typedef struct node { /* 采用二叉鏈表存儲結構 */char data;struct node *lchild,*rchild; }BTnode; BTnode *create()/*利用先序遍歷的過程創建二叉樹*/ {BTnode *t;char ch;scanf("%c&quo…

DOM-動態操作心得

這個知識點都是之前看過的,就當是復習了 一、創建元素的三種方法 第一種: document.write() 識別標簽但會覆蓋之前內容第二種: 用元素自身的innerHTML方法 不識別標簽但可以不覆蓋之前內容 ul.innerHTML "<li></li>"; 第三種:利用DOM自身api創建元素 …

linux探索之旅pdf,【Linux探索之旅】第四部分第一課:壓縮文件,解壓無壓力

內容簡介1、第四部分第一課&#xff1a;壓縮文件&#xff0c;解壓無壓力2、第四部分第二課&#xff1a;SSH連接&#xff0c;安全快捷壓縮文件&#xff0c;解壓無壓力最近小編因為換工作&#xff0c;從南法搬到巴黎。折騰了很久。網絡一直用的是公共的無線網&#xff0c;信號不行…

遍歷二叉樹的全部方法(遞歸+非遞歸)

#include<iostream> #include<queue> #include<stack> using namespace std; //二叉樹結點的描述 typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild; //左右孩子 }BiTNode,*BiTree; //按先序遍…

如何在本地搭建一個Android應用crashing跟蹤系統-ACRA

https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AAAndroid%E5%BA%94%E7%94%A8crashing%E8%B7%9F%E8%B8%AA%E7%B3%BB%E7%BB%9F%EF%BC%8DACRA 如何在本地搭建一個Andr…

20165222第一周查漏補缺

一&#xff0c;第一章要點總結 1&#xff0c;java的特點&#xff1a;面向對象&#xff0c;動態&#xff0c;平臺無關。 2&#xff0c;對于帶包程序的編譯&#xff1a;注意javac -d 編譯到一個文件夾內&#xff0c;然后java -cp 文件夾名 包名.類名。 第一章是比較簡單的&#x…

學習中的十七條建議

作者&#xff1a;孤劍 對于一個自學的人來說&#xff0c;幾條規則當然是必要的了&#xff0c;以下是我自己的一些心得。 1。自信是你成功的第一要素&#xff1b; 2。用心去學&#xff0c;活學活用&#xff1b; 3。新手不要“好高騖遠”&#xff0c;老手不要“驕傲自大”&#x…

tp5 linux路由不跳轉,thinkphp5路由不生效一直跳到首頁的解決方法

自從用laravel框架后&#xff0c;好久沒用過thinkphp框架了&#xff0c;早期用的3.x系列&#xff0c;想熟悉一下thinkphp5&#xff0c;結果入坑了&#xff1b;路由配置一直不起作用&#xff0c;總是跳到首頁&#xff0c;折騰了好久&#xff0c;后來發現是nginx配置的問題&#…

stack堆棧簡介

stack堆棧簡介 堆棧是一個線性表&#xff0c;插入和刪除只在表的一端進行。這一端稱為棧頂(Stack Top)&#xff0c;另一端則為棧底(Stack Bottom)。堆棧的元素插入稱為入棧&#xff0c;元素的刪除稱為出棧。由于元素的入棧和出棧總在棧頂進行&#xff0c;因此&#xff0c;堆棧是…

一份從 0 到 1 的 Java 項目實踐清單

2019獨角獸企業重金招聘Python工程師標準>>> 看了一篇文章&#xff0c;感覺還可以&#xff0c;就給大家共享一下&#xff1a; 對于著手一個項目的時候&#xff0c;要從以下入手&#xff08;即項目清單&#xff09;&#xff1a; 1. 項目規劃 1.1 首先&#xff0c;你得…

JWT 簡介

JWT是一種用于雙方之間傳遞安全信息的簡潔的、URL安全的表述性聲明規范。JWT作為一個開放的標準&#xff08;RFC 7519&#xff09;&#xff0c;定義了一種簡潔的&#xff0c;自包含的方法用于通信雙方之間以Json對象的形式安全的傳遞信息。因為數字簽名的存在&#xff0c;這些信…

FFMPEG的詳細資料可以在它的官方網站上找到

請看官網的文檔欄目: http://ffmpeg.mplayerhq.hu/documentation.html FFmpeg System Documentation Frequently Asked QuestionsFFmpeg program documentationffserver documentationffplay documentationvideo hook documentationsample ffserver configuration fileFFmpeg A…

空指針入棧問題

空指針和數據元素一樣能夠進棧。并且如果棧原來為空&#xff0c;壓入空指針后棧就不會為空了。空指針一旦被賦予指針&#xff0c;如果是在32位機上則占四個字節。只不過是沒有指向堆內存中的任何數據。而空指針已經壓進棧了&#xff0c;不加以釋放就一直存在。

arm linux 中斷 分析,armlinux中斷異常的處理分析.pdf

基于 ARM Linux 中斷、異常的處理分析本文是基于ARM S3C2410X 系統的Linux 2.6 中斷、異常和系統調用的處理分析。主要有以下幾個部分&#xff1a;1. ARM 的硬件中斷機制2. Linux 2.6 對 ARM 中斷向量表的初始化3. Linux 2.6 對 ARM 中斷、異常的處理(從匯編-->C 語言函數&a…

(數據科學學習手札03)Python與R在隨機數生成上的異同

隨機數的使用是很多算法的關鍵步驟&#xff0c;例如蒙特卡洛法、遺傳算法中的輪盤賭法的過程&#xff0c;因此對于任意一種語言&#xff0c;掌握其各類型隨機數生成的方法至關重要&#xff0c;Python與R在隨機數底層生成上都依靠梅森旋轉&#xff08;twister&#xff09;來生成…

音視頻編解碼知識學習詳解(分多部分進行詳細分析)

1. 常用的基本知識 基本概念 編解碼 編解碼器&#xff08;codec&#xff09;指的是一個能夠對一個信號或者一個數據流進行變換的設備或者程序。這里指的變換既包括將信號或者數據流進行編碼&#xff08;通常是為了傳輸、存儲或者加密&#xff09;或者提取得到一個編碼流的操作…

二叉樹非遞歸后序遍歷算法

與正常的非遞歸中序遍歷算法不同于兩點&#xff1a; 一 比正常的中序遍歷算法多了對數據元素的標記。 在壓數據元素入棧&#xff08;標記記為0&#xff0c;用來表示訪問了其左子樹&#xff09;時標記&#xff0c; 還有訪問完左子樹利用gettop&#xff08;&#xff09;獲取雙親…

SQL*Plus命令

SQL*Plus命令 前言 一&#xff1a;SQL*Plus 與數據庫的交互 二&#xff1a;設置SQL* Plus的運行環境 二 - 1 &#xff1a;SET命令概述 二 - 2 &#xff1a;使用SET命令設置運行環境 二 - 2 ____1&#xff1a;Pagesize 變量 1 SYSorcl> show pagesize2 pages…