PHP基础学习记录

——PHP Foundation——

主要总结自https://www.w3school.com.cn/php/index.asp,方便自习

PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码;脚本以 <?php 开头,以 ?> 结尾。

<html>
<body> <h1>我的第一张 PHP 页面</h1> <?php echo "Hello World!"; ?> </body> </html>



————PHP变量
①使用规则:
  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
  • PHP 没有创建变量的命令,变量会在首次为其赋值时被创建。

 

     ②变量的作用域

      变量的作用域指的是变量能够被引用/使用的那部分脚本,分为local,global,static

       § 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

       § 函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

       §通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量,就需要用static定义它

<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;//global使得myTest可以访问到函数外的数据
  $y=$x+$y;
}

myTest();
echo $y; // 输出 15
function myExam() {
  static $a=0;
  echo $a;
  $a++;
}
myExam();//输出1
myExam();//输出2
myExam();//输出3
?>

      


 

————PHP输出方式

        ①echo - 能够输出一个以上的字符串,且没有返回值

             echo "语句";

             echo $a

             echo "语句1","语句2","语句2“;

             echo ”语句$a”;

         ②print - 只能输出一个字符串,并始终返回 1

              用法同echo


 

————PHP数据类型

  ①字符串 

 

       strlen() 返回长度  、  str_word_count()返回单词个数  、  strrev()倒序输出  、 strpos()用于检索字符串内指定的字符或文本。

 

<?php
echo strpos("Hello world!","world");//输出6
?>

 

       count() 函数用于返回数组的长度(元素数)、

 

       str_replace() 替换字符串文本

 

<?php
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
?>

 

      ②浮点数  ③整数   ④逻辑

      ⑤数组

          在 PHP 中,array() 函数用于创建数组;PHP中的数组类型有三种。

           §索引数组:索引是从0开始自动分配的,参考c语言中的数组。

$cars=array("Volvo","BMW","SAAB");//$cars[0]="Volvo";$cars[1]="BMW";$cars[2]="SAAB";
echo "my car is a car{array [0]}";//输出My car is a Volvo

            遍历

<?php
$cars=array("porsche","BMW","Volvo");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

          §关联数组:关联数组是使用你您分配给数组的指定键的数组。

              即将数组按变量名赋值或赋字符串。

<?php
$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");//$age['Bill']="63";$age['Steve']="56";$age['Elon']="47";
echo "Elon is " . $age['Elon'] . " years old."; ?>//Elon is 47 years old.
     遍历
<?php
$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}
?>

            §对数组排序

             sort() - 以升序对数组排序

             rsort() - 以降序对数组排序

             asort() - 根据值,以升序对关联数组进行排序

             ksort() - 根据键,以升序对关联数组进行排序

              

<?php
$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");
ksort($age);

foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

//输出:Key=Bill, Value=63
 //         Key=Elon, Value=47
//          Key=Steve, Value=56

             arsort() - 根据值,以降序对关联数组进行排序

             krsort() - 根据键,以降序对关联数组进行排序

      ⑥对象

          基本语法

   <?php
   class phpClass {                          //类使用 class 关键字后加上类名定义。
     var $var1;
     var $var2 = "constant string";          //类的变量使用 var 来声明, 变量也可以初始化值。
  
     function myfunc ($arg1, $arg2)          //函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
{ …… } …… } ?>
🌙类创建后,我们可以使用 new 运算符来实例化该类的对象:
<?php 
class Site { 
  /* 成员变量 */ 
  var $url; 
  var $title; 
   
  /* 成员函数 */ 
  function setUrl($par){ 
     $this->url = $par; 
  } 
   
  function getUrl(){ 
     echo $this->url . PHP_EOL; 
  } 
   
  function setTitle($par){ 
     $this->title = $par; 
  } 
   
  function getTitle(){ 
     echo $this->title . PHP_EOL; 
  } 


$taobao = new Site;
$taobao->setTitle( "淘宝" );
$taobao->setUrl( 'www.taobao.com' );

     ⑦NULL值

 


————PHP常量

      有效的常量名以字符或下划线开头;常量名称前面没有 $ 符号

      设置常量使用 define() 函数 - 它使用三个参数:

  1. 首个参数定义常量的名称
  2. 第二个参数定义常量的值
  3. 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。、
<?php
define("GREETING", "Welcome to my home!");
echo GREETING;        //输出 Welcome to my home!
?>

 

————PHP特殊的字符串运算符 

    ①  .  串接

    ② .=  串接并赋值

<?php
$txt1 = "Hello";
$txt2 = " world!";
echo $txt1 . $txt2;      //输出Hello world!
?>

<?php
$txt1 = "Hello";
$txt2 = " world!";
$txt1 .= $txt2;
echo $txt1;              //输出Hello world!
?>

    


 ————PHP的主要语句 

① 条件语句
if语句、if……else语句、if……else if……else语句
Switch语句
②循环语句
§for语句
参考c语言的for循环,注意需要在()里面的变量前均添加符号"$"。
§while语句、do……while语句
参考c语言的循环语句,同上
§foreach语句
基本语法
foreach($array as $Value){
code to be executed
}
🌙每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
E.G
<?php 
$colors = array("red","green","blue","yellow"); 

foreach ($colors as $value) {
  echo "$value <br>";
}
?>
//输出red
green
blue
yellow



————PHP超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。
①$GLOBALS 用于在 PHP 脚本中的任意位置访问全局变量,类似global
<?php 
$x = 75; 
$y = 25;
 
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>
   ②$_SERVER 保存关于报头、路径和脚本位置的信息。

             https://www.w3school.com.cn/php/php_superglobals.asp

           ③PHP $_REQUEST  用于收集 HTML 表单提交的数据。

             实例:下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例                                      子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST                                                  来收集 input 字段的值:      

              实例来源于w3school

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">//$_SERVER['PHP_SELF']是返回当前执行脚本的文件名
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>

</body>
</html>
//输出:

 


 


————PHP多维数组

多维数组指的是包含一个或多个数组的数组。

二维数组

   E.G.记录一个关于学生身高体重的表格,

            现在这个两维数组包含了四个数组,并且它有两个索引(下标):行和列。

      $student=array

 (

       array("Lihao",175,65);

       array("Linfan",172,65);

       array("Zhanghua",180,70);

     )   

                   如需访问 $cars 数组中的元素,我们必须使用两个索引(行和列):       

    <?php

          echo $student[0][0].":身高:".$student[0][1].":体重:".$student[0][2].".<br>";

          echo $student[1][0].":身高:".$student[1][1].":体重:".$student[1][2].".<br>";

          echo $student[2][0].":身高:".$student[2][1].":体重:".$student[2][2].".<br>";

         ?>

                  通过for循环实现更加简便

              

                <?php

                  for($r=0;$r<3;$r++)

                   { 

                      echo "<p><b>学生 $r</b></p>";
                       echo "<ul>";
                       for ($a= 0; $a < 3; $a++) {
                       echo "<li>".$student[$r][$a]."</li>";
                    }
                      echo "</ul>";}
                   ?>

      //输出样例:

      学生1

  • Lihao
  • 175
  • 65

————PHP日期

date() 函数把时间戳(表示具体事件发生的日期和事件)格式化为更易读的日期和时间。

基本语法:date(format,timestamp)

参数 描述
format 必需。规定时间戳的格式。
timestamp 可选。规定时间戳。默认是当前时间和日期。

         ① 显示基本的日期         

                    d - 表示月里的某天(01-31)

                    m - 表示月(01-12)

                    Y - 表示年(四位数)

                    1 - 表示周里的某天

<?php
echo "今天是 " . date("Y/m/d") . "<br>";//今天是2020/09/05
echo "今天是 " . date("Y.m.d") . "<br>";//今天是2020.09.05
echo "今天是 " . date("Y-m-d") . "<br>";//今天是2020-09-05
echo "今天是 " . date("l");             //今天是周六
?>

                      h - 带有首位零的 12 小时小时格式

                      i - 带有首位零的分钟

                      s - 带有首位零的秒(00 -59)

                      a - 小写的午前和午后(am 或 pm)

<?php
echo "现在时间是 " . date("h:i:sa");//现在时间是17:46:46
?>

            ② 创建日期

                § 使用mktim()函数创建日期

                 基本语法:mktime(hour,minute,second,month,day,year)         

<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>

                § 使用strtotime()函数创建日期

                     基本语法:strtotime(time,now)

<?php
$d=strtotime("10:38pm April 15 2015");
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);
?>

                strtotime的灵活使用

$d=strtotime("tomorrow");
$d=strtotime("next Saturday");
$d=strtotime("+3 moths");

           §实例 来自wsdchool

                  输出下周六的日期      

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks",$startdate);

while ($startdate < $enddate) {
  echo date("M d", $startdate),"<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>
//Sep 05
Sep 12
Sep 19
Sep 26
Oct 03
Oct 10

               输出七月四日之前的天数

<?php
$d1=strtotime("December 31");
$d2=ceil(($d1-time())/60/60/24);
echo "距离十二月三十一日还有:" . $d2 ." 天。";
?>

————PHP文件

 PHP 拥有的多种函数可供创建、读取、上传以及编辑文件。

 假设有一个名为 "test.txt" 的文本文件,存放在服务器上:

少年游·长安古道马迟迟

作者:柳永  宋代

长安古道马迟迟,高柳乱蝉嘶。夕阳鸟外,秋风原上,目断四天垂。

归云一去无踪迹,何处是前期?狎兴生疏,酒徒萧索,不似少年时。

     ①文件打开fopen()

        基本语法:fopen("文件名(带扩展名)", "打开方式")

模式 描述
r 打开文件为只读。文件指针在文件的开头开始。
w 打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。               文件指针在文件的开头开始。
a 打开文件为只写。文件中的现有数据会被保留。创建新的文件,如果文件不存在。    文件指针在文件结尾开始。
x 创建新文件为只写。返回 FALSE 和错误,如果文件已存在。
r+ 打开文件为读/写、文件指针在文件开头开始。
w+ 打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。
a+ 打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。
x+ 创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。

      ②文件读取fread()

        基本语法:fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

                    fread($myfile , filesize("test.txt"));

       ③文件关闭fclose()

               基本语法:fopen("文件名(带扩展名)", "关闭方式")

              <?php

             $myfile = fopen("test.txt", "r") or die("Unable to open file!");

             echo fread($myfile,filesize("test.txt"));

             fclose($myfile);

             ?>

        ④读取单行文件 fgets()

               🌙调用 fgets() 函数之后,文件指针会移动到下一行。

         <?php

        $myfile = fopen("test.txt", "r") or die("Unable to open file!");

         echo fgets($myfile);

        fclose($myfile);

         ?>

//输出:少年游·长安古道马迟迟

        ⑤检查文件End-Of-File - feof()

               feof() 函数检查是否已到达 "end-of-file" (EOF)。

           🌙feof() 对于遍历未知长度的数据很有用。

<?php

$myfile = fopen("test.txt", "r") or die("Unable to open file!");

// 输出单行直到 end-of-file

while(!feof($myfile)) {

  echo fgets($myfile) . "<br>";

}

fclose($myfile);

?>

            ⑥读取单字符fgetc()

                🌙与读取单行相同,在调用 fgetc() 函数之后,文件指针会移动到下一个字符。

 <?php

$myfile = fopen("test.txt", "r") or die("Unable to open file!");

// 输出单字符直到 end-of-file

while(!feof($myfile)) {

  echo fgetc($myfile);

}

fclose($myfile);

?>

 

              ⑦创建文件fopen()

                 fopen() 函数也用于创建文件。

                 🌙用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。

               ⑧写入文件fwrite()

                   基本语法:fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。

<?php

$myfile = fopen("test.txt", "w") or die("Unable to open file!");

$txt = "柳永,字景庄\n";

fwrite($myfile, $txt);

$txt = "北宋著名词人\n";

fwrite($myfile, $txt);

fclose($myfile);

 

?>

 

             覆盖

             如果现在 "text.txt" 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。🌙所有已存在的数据会被擦除并以一个新文件开始。

 

 

 


 2020-09-0521:44:20

posted @ 2020-09-04 21:12  EleclouD  阅读(152)  评论(0)    收藏  举报