PHP基本语法 原创

PHP定义:PHP(Hypertext Preprocessor缩写)超级文本预处理器,是服务器端嵌入到HTML中的脚本语言。

PHP在WEB中的用途

收集表单数据

生成动态网页

字符串处理

动态输出图像

服务器端文件系统操作

编写数据库支持的网页

会话跟踪控制

处理XML文件

支持利用大量的网络协议

服务器端的其他相关操作

具体内容参照细说PHP第二版 103页
(收集表单数据, 生成动态网页, 字符串处理, 动态输出图像, 服务器端文件系统操作, 编写数据库支持的网页, 会话跟踪控制, 处理XML文件, 支持利用大量的网络协议, 服务器端的其他相关操作)

PHP语言标记

用<?php 来表示PHP标示符的起始,然后放入PHP语句并通过加上一个终止符 ?>来退出PHP模式。
可以根据自己需要在HTML文件中像这样开启或关闭PHP模式。大多数嵌入式脚本语言都是这样嵌入
HTML中并和HTML一起使用的,如  CSS、JAVAScript、PHP、ASP以及JSP等。
注:1.可以将PHP嵌入到HTML中的任何位置,而且还可以嵌入HTML标签属性里。
               2.嵌入了PHP代码的HTML文件后缀名必须使用 .php
                3.如果整个文件全是PHP的代码,最后的问号尖括号(结束符)可以省略(推荐省略)
标记: 绿色

<html>
     <head>
       <!-- 在html中使用style标记嵌入CSS脚本 -->
<style type="text/css">
 body {
margin: 0px;
background: #ccc;
   }
</style>
</head>
     <body>
<!-- 在HTML中使用script标记嵌入javaScript脚本 -->
<script>
alert("客户端的时间"+(new Date()));
</script>
<!-- 在HTML中使用以下标记嵌入PHP脚本 -->
<?php
  echo "服务器的时间".date("Y-m-d H:i:s")."<br>";
?>
  </body>
</html>

五种嵌入标记格式: 1.<?php   ?>                         标准风格标记,属于XML风格,推荐使用。
                                                               2.<?=$variablename  ?>      在HTML中嵌入纯变量时使用。
                                                             3.<%  %>                          ASP风格的标记,移植性差,默认禁用的。在php.ini asp_tags 开启。   
                                                               4.<?  ?>                            简短风格的标记,会干扰XML文档声明,在php.ini short_open_tag 开启。
                                                               5.<script language="php"> 长标记风格,默认情况下总是可用的。 但是不能嵌入 HTML属性位置。
                                                                  </script>

第一个程序PHP程序: <?php  
                                                                     phpinfo();
                                                                     ?>
注:可以查看系统配置的一些参数,如PHP版本,本地使用localhost/test1.php 访问

<?php
//设置时区
date_default_timezone_set("PRC");

//输出当前日期,并格式化成  0000-00-00格式
echo date('Y-m-d');
?>
<!doctype html>
<html lang="en">
<head>
      <meta charset="UTF-8">
      <title><?php echo 111;?></title>
     </head>
     <body>
<?php
echo '85期第一个页面';
?>
     </body>
</html>

指令分隔符”分号“

php语句分为两种:一种是在程序中使用结构定义语句;例如:流程控制、函数定义、类的定义等。
                                                          另一种是在程序中使用功能执行语句,用来在程序中执行某些特定功能的语句称为指令。
                                                           例如:变量的声明、内容的输出、函数的调用等。指令用分号结尾。
注:一段PHP代码中的结束标记?>隐含表示了一个分号,所以在一个PHP代码段中的最后一行可以不用分号结束。推荐加分号。

程序注释

程序注释的作用: 
                          1. 可以将写过的觉得不合适的代码暂时注释掉,不要急于删除,如果在想使用,可以打开注释重新启用。
                           2.注释的主要作用在于说明程序,给自己和他人在阅读程序时提供帮助,使程序更容易理解,也就是增
                             强程序代码的可读性,以方便维护人员维护。
                            3.注释对调试程序和编写程序也可起到很好的帮助作用。

<?php
$a = 12;

//对$a和12求和(单行注释上面空一个空行,写在要描述的代码上面)
echo $a + 12;

/*
1,多行注释前面要空出一个空白行,
可以写多行。
2,不能互相嵌套

输出一首诗
 //出处:Jack 敲的

*/
function show()
{
echo '落花留意随流水,流水无心恋落花';
}

//文档注释

/**
*获取用户姓名和年龄
*@param $name string 用户名
*@param $age int 年龄
*@example getdata('jingjing',18);
*/
function getdata($name,$age)
{
echo '我叫'.$name.'今年芳龄'.$age;
}

四种注释符号:
                   多行注释: /*  多行内容  */  
                                                    /**  多行内容 */           文档注释,可以使用帮助文档软件导出。
                  单行注释: //  单行注释内容          (单行注释推荐使用)
                                                 #   单行注释                  ( 脚本注释,不推荐使用)     
注: 多行注释不可以在包含多行注释,多行注释可以包含单行注释。单行注释可以包含单行注释,单行注释可以包含多行注释。
        注释要写在代码的右边或者上边,推荐写在代码上边,符合国际标准。

程序中使用空白的处理

下列情况应该总是使用两个空行:
                                          一个源文件的两个代码段之间。
                                        两个类的声明之间。
下列情况应该总是使用一个空行:
                                        两个函数声明之间。
                                        函数内的局部变量和函数的第一条语句之间。
                                        块注释和单行注释之前。
                                       一个函数内部的两个逻辑代码段之间,用来提高可读性。
空格的应用规则是可以通过代码的缩进提高可读性。
              空格一般应用于关键字与括号之间,不过需要注意的是,函数名称与左括号之间不应该用空格分开。
              一般在函数的参数列表中的逗号后面插入空格。
              数学算式的操作数与运算符之间应该添加空格(二进制运算与一元运算除外)。
              for语句中的表达式应该用逗号分开,后面添加空格。
              强制类型转换语句中的强制类型的右括号与表达式之间应该用逗号隔开,添加空格。

注意:类声明、函数声明 的左大括号换行顶格写(推荐写法),循环结构语句中的除外。

<?php
//一个源文件的两个代码段之间使用2个空行
if($jingjing > 22){
echo '晶晶,你可以领证啦';
}else{
echo '再忍2年';
}

function show()
{
if($shenming == '男'){
echo '确定吗';
}else{
echo '请问泰国好玩吗?';
}
}

//两个类的声明之间使用2个空行
class person
{

}

class woman
{

}

//两个函数声明之间保留一个空白行
function show()
{

}

function showdata()
{

}

//函数内部两个逻辑代码段之间保留一个空白行
function show()
{
$nvhanzi = 'hanxu';

if($jingjing == '女'){
echo '允许她有1个男朋友';
}else{
echo '允许他有n女朋友';
}

if($jingjing == 'girl' ){
echo '小萝莉晶晶';
}else{
echo '小罗汉晶晶';
}
}

变量

变量定义:变量是用于临时存储值的容器。这些值可以是数字、文本、或者复杂得多的排列组合。

变量声明

格式: $变量名 = 变量值      (等号前后推荐使用空格,让格式更清晰)
例如: $name = "vilin";       (如果是字符串类型的值,需要用单引号或双引号扩起来)
             $age = 27;  
             $a = $b = $c = 100;     ( 同时声明多个变量)
输出变量:
 echo '我的姓名是'.$name.',我的年龄是'.$age.'岁。<br>';   (单引号效率最高,推荐使用)
 echo "我的姓名是 $name ,我的年龄是 $age 岁。<br>";   
 echo "我的姓名是{$name},我的年龄是{$age}岁。<br>";
PHP是弱类型语言,和JAVA及其他语言不同,声明时,不需要指定变量类型。

变量命名

命名相关规则:
       1.必须以字母或者下划线开头。
           2.可以使用字母、下划线、数字、中文、大部分特殊字符。(不推荐用中文和特殊字符)
         3.声明的变量名称必须有意义
         4.严格区分大小写,常量也区分大小写。
         5.可以使用系统同名的系统函数、常量、关键字。(不推荐使用)
         6.第一个单词小写,以后每个单子开头字母大写。如: aaaBbbCccc

可变变量

概念:就是说一个变量的变量名可以动态地设置和使用。一个普通的变量通过声明来设置,而一个可变变量获取了一个
普通的变量的值作为这个可变变量的变量名,

例如:  
<?php
<?php
header("content-type=text/html;charset=utf-8");

$hi = 'hello';
$$hi = 'world';
echo $hi.$hello;   //helloworld
echo '<br>';
echo $hi.$$hi;     //helloworld
echo "<br>";
echo $hi.${$hi};   //helloworld
echo '<br>';
echo $hi." ${$hi}"; //hello world
echo '<br>';
echo "$hi ${$hi}"; //hello world

<?php
header("content-type:text/html;charset=utf-8");
$meinv = 'huihui';
$huihui = 'luoli';
$luoli = 'bilaoshi';
$bilaoshi = 'luohan';

echo $$$$meinv;

$login = $_GET['act'];

//$login();

function sina()
{
 echo '使用sina账户登录';
}

function qq()
{
echo '使用qq账户登录';

}

function weibo()
{
echo '使用weibo账户登录';
}
sina();
qq();

变量的引用赋值

<?php
header("content-type:text/html;charset=utf-8");

$foo = 'Bob';  //声明一个变量
$bar = $foo;   //把$foo的值赋给$bar
$foo = 'Ali';  //重新声明变量$foo
echo $bar.'<br>'; // 输出 Bob
echo $foo.'<br>'; //输出 Ali

echo '<hr>';

$vilin = '潘晓亮';
$halin = &$vilin;    //使用&引用赋值

$halin = "伊中凯";
echo $vilin.'<br>';  //输出伊中凯
echo $halin.'<br>';  //输出伊中凯

$vilin = "洋洋";
echo $vilin.'<br>';  //输出洋洋
echo $halin.'<br>';  //输出洋洋

unset($vilin);       //销毁$vilin ,不影响 $halin
echo $halin.'<br>';

变量的类型

数据类型

四种标量类型

布尔型 bool、boolean  只有两种值 true false

整型 int、integer   如: -1 0 1 负整数 零 正整数

浮点型 float、double real    小数   带小数点的都是。

字符串  str、string       字符串使用'' ""  定界符 声明

两种复合类型

数组 array    $arr=array('vilin',24,'男','汉')

对象 object

两种特殊类型

资源 resource

NULL

布尔型只会有两种结果: true false  即 真  假。
以下类型在转换成布尔型的值时为false:
         1.   $bool = false;
        2.    $bool = 0;
        3.    $bool = 0.00;
         4.   $bool = '0';
         5.   $bool = '';
         6.   $bool = null;
         7.   $bool = array();
         8.   空资源
         9.   被销毁的变量;
判断语句为:
      if($bool){
               echo 'true';
}else{
               echo 'false';
}

单引号、双引号、定界符 的理解:
         1.单引号、双引号、定界符都可以声明字符串。
         2.单引号不能解析变量和转义字符 \   (解析效率高)
         3.单引号中不能在包含单引号。(如果有,请使用转义字符)
         4.转义字符在单引号中只能解析单引号,和转义字符本身。
         
         5.双引号可以解析变量和转义字符。
         6.双引号中不能在包含双引号。(如果有,请使用转义字符)
        7.单引号中可以包含双引号,双引号中可以包含单引号。
         8.转义字符在双引号中有更多的意义。(\n \r \t 等)
         9.双引号可以解析包含在单引号中的变量,单引号也将被保留。
           (用途:"select * from bbs_user where username='$username'";)
         10.链接一个字符串和变量,或者链接两个变量使用符号"."
定界符:   <<<TOM
TOM 命名随意,但是起始和终止名称要一致,终止要顶格写。
当字符串中有较多双引号时,用定界符来声明字符串
TOM;

NULL 包含三种情况:1.被赋值为 NULL值的变量。 2.尚未被赋值的变量。 3.被unset()函数销毁的变量。

几个函数的使用:isset() 判断变量是否被设置  empty() 判断变量值是否为空  配合if语句使用效果更好。
                                                          unset() 销毁变量。     gettype() 获取变量类型,可以传入数据库。  ()内可以是传值或者变量
                                                           var_dump() 获取变量类型 长度 值   ()内可以是传值或者变量

empty() 判断为空的几种情况:
 1,空字符串  
 2,字符串0
 3,整型0
 4,浮点零
 5,空数组
 6,   空资源
 7,false
 8,null
 9,被销毁变量

数据类型之间
相互转换

概念:数据转换就是指将变量或值从一种数据类型转换成其他数据类型。

一种:自动转换:通常只有4种标量类型才使用自动转换。这并没有改变这些运算数本身的类型。
         转换规则:1.有布尔型参与运算时,TURE将转化为整型1,FALSE将转化为整型0后在运算。
                        2.有NULL值参与运算时,NULL转化为整型0再进行运算。
                          3.在integer型和float型参与运算时,先把integet型变量转成float类型后在进行运算。
                            4.有字符串和数字型(integet,float)数据参与运算时,字符串先转化为数字,在参与运算。转化后的数字是从字符串开始的数值型字符串,
                                 如果在字符串开始的数值型字符串不带小数点则转为integer类型数字。如果带有小数点,则转为float 类型数字,例如,字符串"123abc"
                                转为整数123,字符串"123.45abc"转为浮点数 123.45,字符串"abc"转为整数0.
                           5.如果任何一个运算数是浮点数,则所有的运算数都被当成浮点数,结果也是浮点数。否则运算数会被解释为整数,结果也是整数。
                 实例:
                        <?php
                                $foo = "100page";                 //$foo声明一个字符串
                                $foo += 2;                           //$foo = $foo + 2    值 102
                                $foo = $foo + 1.3;               //值为103.3
                                $foo = null + "10 Little Piggies"; //值为  10
                               $foo = 5 + "10.05 yuan";            // 15.05

二种:强制转换

第一种转换方法:
                       (int),(integer):转换成整型。
                       (bool),(boolean):转换成布尔型。
                       (float),(double),(real):转换成浮点型。
                       (str),(string):转换成字符串。
                       (array):转换成数组。
                       (object):转换成对象。
                   如:$foo = 10;
                         $bar = (boolean)$foo;         //可是是具体值或变量 返回 具体值
注:这种转换方法并没有转换变量本身的类型。

第二种转换方法:
                      intval();  //括号可填具体值或变量,返回 int
                      floatval(); //括号可填具体值或变量,返回  float
                      strval();   //括号可填具体值或变量,返回 string
注:在转换变量时,这种转换方法也不会改变变量本身类型。

第三种转换方法: 
                        bool settype ( mixed var, string type )
将变量 var 的类型设置成 type。 
type 的可能值为: 
“boolean” (或为“bool”,从 PHP 4.2.0 起) 
“integer” (或为“int”,从 PHP 4.2.0 起) 
“float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用) 
“string” 
“array” 
“object” 
“null” (从 PHP 4.2.0 起)

如果成功则返回 TRUE,失败则返回 FALSE。 
例子 1. settype() 示例
<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo 现在是 5   (integer)
settype($bar, "string");  // $bar 现在是 "1" (string)
注:NULL 值转换字符串, 为空字符' '。会转换变量本身。

变量类型的测试函数

每个函数都是使用一个变量作为其参数,并返回ture或false :注:可以使用变量和值做参数。
           is_bool(): 判断是否是布尔型。 
           is_int()、is_integet()和is_long(): 判断是否是整型。
           is_float()、is_double() 、is_real():判断是否是浮点型。
           is_string(): 判断是否是字符串。
      is_array(): 判断是否是数组。
           is_object(): 判断是否是对象。
           is_resource: 判断是否是资源。
           is_null(): 判断是否是为空。
           is_scalar(): 判断是否是表里,也就是 布尔型、整型、浮点型、字符串。
           is _numeric(): 判断是否是任何类型的数字或者数字字符串  整型 和 浮点型。
           is_callable():判断是否是有效的函数名。
说明:面试题
array(),echo(),empty(),eval(),exit(),isset(),list(),print() 和 unset()。 
是语言结构

<?php
$str = 'jingjing';
$n = 22;
$result = $str.$n;
var_dump($result);

//不是以数字开头的字符串参与算数运算,自动转换成0
var_dump($str + $n);
echo '<hr />';
$str = '13abc';
echo $str + 12;
echo $str * 3;

echo '<hr />';
$str = '1.001ab12c1';
echo $str * 3;

//浮点数参与运算:只要是浮点参与的算数运算,结果必然浮点
var_dump(1.9 + 0.1);

var_dump(0.1 * 10);

$str = 'abc';

var_dump($str .false);
var_dump($str.true);

echo '<br />';
echo 1 + true;
echo '<br />';
echo 1+ false;

常量

系统中的预定义常量:
       PHP_OS                          执行PHP解析的操作系统名称
       PHP_VERSION                 当前PHP服务器的版本
       TRUE                              代表布尔值,真
       FALSE                             代表布尔值,假
       NULL                             代表空值
       DIRECTORY_SEPARATOR   根据操作系统决定目录的分隔符  win\或/linux
       PATH_SEPARATOR           根据操作系统决定环境变量的目录列表分隔符
       E_ERROR                         错误,导致PHP脚本运行停止    1
       E_WARNING                    警告,会话导致PHP脚本运行终止  2 
       E_PARSE                          解析错误,由程序解析器报告    4
       E_NOTICE                        非关键的错误,例如变量未初始化  8 
       M_PI                                数学中的π

概念:常量一般用于一些数据计算中固定的数值,常量是一个简单值的标识符,一旦被定义,就不能改变也无法取消,作用域是全局的(当前的页面)。
        1.常量一旦定义,就无法取消和改变它的值。
        2.常量的应用范围是全局的(整个页面,如果要引入其他页面,请用include)。
        3.常量命名区分大小写,惯例使用全大写。
        4.常量以字母或下划线开头,后面跟字母、数字、下划线。
        5.常量命名要有意义。
        6.常量的值只能使用标量类型。

常量的定义和使用:
                 新的定义方式: const DB_HOST = 'localhost';  //5.3.6以后版本PHP 推荐使用
                    旧定义方式: define('DB_USER', 'root');             //括号内的都要加引号。
                             使用:  DB_HOST;
                             使用:echo DB_USER;    
         查询常量是否被定义:defined('DB_USER');    //布尔型值。可使用if语句判断。
注:链接外部文件命令:include('define.php');  实例请参考备注。

---------------------------------------define.php---------------------------------
<?php
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('PRC');
echo date('Y-m-d');

define('DB_HOST', 'localhost');
const DB_USER = 'root';
const DB_PWD = '';
const CSS_PATH = './static/css/';

-----------------------------define.php------------------------------

--------------------------------------------------------shouye.php--------------------

<?php
header('content-type:text/html;charset=utf-8');
include('define.php');
?>
<html>
<head>
<title>CCS</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="<?php echo CSS_PATH; ?>style.css">
</head>
</html>
<?php
 $link = mysql_connect(DB_HOST, DB_USER, DB_PWD);
var_dump($link);

-----------------------------------------------shouye.php-----------------------------

魔术常量:值会根据它们使用的位置而改变。
     _FILE_                     当前所在位置的文件名
    _LINE_                     当前所在位置的行序列
   _FUNCTION_             当前的函数名
  _CLASS_                     当前的类名

_METHOD_                当前对象的方法名

PHP基本语法--php基础最详细教程相关推荐

  1. 数据库基础语法--php基础最详细教程

    数据库开发篇 原创 MySQL数据库概述 数据库系统 (database system) 数据库 (database) 数据库管理系统 (Database Management             ...

  2. HTML零基础入门详细教程

    欢迎来到HTML的零基础入门教程.HTML是构建网页的基础,是Web开发的必备技能之一.在本教程中,我们将介绍HTML的基础知识,包括HTML的基本结构.标签.属性等内容.让我们开始吧! 1. HTM ...

  3. 【网络工程零基础】小白零基础,详细教程一看就能学会

    [温馨提示]需要资料或者需要进群交流划到最底部 OSPF基础配置 一.OSPF功能介绍: OSPF(Open Shortest Path First)为 IETF OSPF 工作组开发的一种基于链路状 ...

  4. 【Mermaid 语法详细教程 01】 流程图(Flowchart / graph)

    说明 mermaid是一种解决文字图形转换的方案,用于在markdown标记语言中利用文本绘图,本文内容保证适合mermaid 8.8.3的内容,向上更新的内容不论. 本篇作为mermaid教程系列的 ...

  5. 电脑键盘功能基础知识,快速入门,抓住这份详细教程

    在互联网生活发达的今天,电脑已经成为了学习工作的必备工具.而用来操作电脑的关键,就是我们经常使用的键盘和鼠标.最近有不少的小伙伴来私信小编,希望小编做一个电脑键盘功能基础知识介绍的详细教程.这不,小编 ...

  6. CGA建模教程——形状语法(基础篇)

    CGA建模教程--形状语法(基础篇) 本教程是使用CityEngine的CGA进行建筑建模的入门教程. 原文链接:http://desktop.arcgis.com/en/cityengine/lat ...

  7. gulp菜鸟级零基础详细教程,嘴对嘴教会你怎么使用gulp

    gulp菜鸟级零基础详细教程,嘴对嘴教会你怎么使用gulp 相信大家一定听说过gulp或者webpack,grunt等前端构建工具,这些是做什么用的我也不知道,也许他们会和一些前端框架用到一起,让开发 ...

  8. 制作系统U盘详细教程,以及分盘等基础操作

    制作系统U盘详细教程,以及分盘等基础操作 一.简介 相信很多朋友都会遇到系统崩溃,然后捧着电脑去电脑店,或者百度一番后做出系统盘无法使用的情况: 综上:本人计算机系大三学生,虽经验较少但男女同学电脑都 ...

  9. 用burpsuite抓包,谷歌 / 火狐浏览器 该怎么设置BurpSuite代理?——超详细教程——CTF Web小白入门基础篇

    以下是我自己操作过的,理一理思路. 使用BurpSuite的套路是:先浏览器设置BurpSuite代理-->BurpSuite 调至on状态-->访问web程序-->进行抓包分析 最 ...

最新文章

  1. 【软考】2017年11月软件设计师上午真题9-12题答案解析
  2. Linux一键安装web环境全攻略(阿里云服务器)
  3. 构造函数必须没有代码
  4. docker添加新的环境变量_Docker环境变量
  5. spark RDD,reduceByKey vs groupByKey
  6. Android API Guides---Supporting Tablets and Handsets
  7. mysql 一对多 join_mysql多表left join 1对多的解决办法
  8. java是否存在引用传递_Java永远不会传递引用,对吧?
  9. 图解设计模式(23种)
  10. exoplayer实测播放dash流(二) dash+drm widevine加密流
  11. android思维导图软件推荐,好用的思维导图软件,安卓思维导图软件哪个好
  12. 树莓派硬件编程——(零)先导篇
  13. 2021江苏考试院高考成绩查询入口,江苏省教育考试院2021年江苏高考成绩查询时间及系统入口...
  14. 18 个 JavaScript 入门技巧
  15. 盯上年轻人的今日头条,重新以内容出发还有多少可能?
  16. 【Visual Studio 2019 - Unknown override specifier error】Problems when compiling dbghelp.h
  17. PS将图片的背景填充变为无色
  18. Miui13-mi10s刷twrp和Magisk
  19. 前端_什么是页面重构
  20. 区块链 - 若只如初见

热门文章

  1. ardupilot 加速度计六面校准
  2. 爬取简单静态网站——汽车之家二手车
  3. 基于区块链技术的智慧供应链创新应用
  4. 如何用不到200行代码实现经典小游戏贪吃蛇,附源代码及详细实现思路
  5. 想要不被裁,看一看 13 年华为老兵的宝贵经验
  6. 空间数据与空间分析不确定性原理——学习笔记(1)
  7. 最新火狐手机浏览器如何通过firefox修改UA
  8. d3dcompiler_43.dll的错误怎么解决?
  9. python 模拟微信浏览器请求_用chrome在电脑上模拟微信内置浏览器
  10. 金碟软件资产负债表中JC,JD,DY,DC表示的是什么