PHP基础语法

一、PHP标记

  • <?php echo "hello php"; ?>

  • <? echo "hello php"; ?>

  • <script language="php"> echo "hello php"; </script>

  • <% echo "hello php"; %>

echo 可以输出任何内容到页面上。

注意:1、3可直接使用,但是2,4需要修改php.ini的配置文件才能使用,只做了解。

二、变量

1、变量命名规则
  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
2、变量赋值
  • 值赋值:直接给变量赋值。
$name = "xiaoming";

$age = 18;

$num = 10 + "20";   // $num输出结果等于30

$a = "gebi"."laowang"  // $a 输出结果是gebilaowang

注意:在PHP中 + 只表示数字相加;• 才表示字符串拼接

打印10个小明

        for ($i=0; $i < 10; $i++) {
            // echo "小明".($i + 1)."号<br/>";
            // echo "小明 $i 号<br/>";
            // echo "小明{$i}号<br/>";
            echo "小明".($i + 1)."号<hr/>";
        }

        // PHP中,双引号带有变量解析功能
        // 单引号为纯字符串
        // 双引号解析变量的时候,可以使用{}括起变量名

注意:PHP中,双引号带有变量解析功能,单引号为纯字符串。
双引号解析变量的时候,可以使用{}括起变量名。

  • 引用赋值:将一个变量的地址赋给另一个变量,此处需要在变量名前面加上&符号。
        // &取址运算符
        $myAge = 18;
        $yourAge = &$myAge;
        // 取出$myAge的地址,赋给$yourAge,修改$yourAge会影响$myAge
        $yourAge = 19;

        // 此时输出的结果都是19
        echo $myAge."<br/>";
        echo $yourAge."<br/>";


     // 函数内部修改函数外部变量的值
     // 如果需要函数内修改函数外部变量,参数前面需要添加&符 号,进行取址操作。
     function add(&$a){
         $a *= 10;
     }
     $b = 10;
     add($b);
     echo $b."<br/>";  //输出结果100
3、变量的变量
    // 变量的变量
    $one = "hello";
    $$one = "world";

    echo $one."".$hello;  //输出结果helloworld
4、超全局变量

php提供了很多有用的预定的变量,用于提供大量与环境有关的信息。

(1)、$_SERVER服务器变量,该全局变量包含着服务器和客户端配置及当前请求环境的有关信息。

  • $_SERVER['SERVER_NAME']:当前运行脚本所在的服务器的主机名

  • $_SERVER['REMOTE_ADDR']:客户端IP地址

  • $_SERVER['REQUEST_URI']:URI的路径部分

  • $_SERVER['HTTP_USER_AGENT']:操作系统和浏览器的相关信息

    // 当前运行脚本所在的服务器的主机名
    echo $_SERVER['SERVER_NAME']."<br/>";
    // 客户端IP地址
    echo $_SERVER['REMOTE_ADDR']."<br/>";
    // URI的路径部分
    echo $_SERVER['REQUEST_URI']."<br/>";
    // 操作系统和浏览器的相关信息
    echo $_SERVER['HTTP_USER_AGENT']."<br/>";

(2)、$_GET该变量包含使用GET方法传递的参数的有关信息

(3)、$_POST该变量包含使用POST方法传递的参数的有关信息

html代码

    <form class="" action="login.php" method="post">
        <label for="userName">请输入账号</label>
        <input id="userName" type="text" name="userName" value="">
        <br/>
        <label for="pwd">密码</label>
        <input type="password" name="pwd" value="">
        <br/>
        <label for="phone">手机号</label>
        <input type="num" name="phone" value="">
        <br/>
        <input type="submit">
    </form>
html代码执行效果

注意:html代码必须在服务器环境下加载,提交表单时才有效果。

php代码

<?php

echo "用户名: " . $_POST["userName"] . " 密码: " . $_POST["pwd"]." 手机号: " . $_POST["phone"];

 ?>
提交表单代码执行效果

(4)、$_REQUEST该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超全局变量,因为它不安全而且速度比较慢。

(5)、$_COOKIE cookie变量数组

(6)、$_SESSION 会话变量数组

(7)、$_FILES 与上传文件有关的变量数组

(8)、$_ENV 环境变量数组

(9)、$GLOBALS 所有全局变量数组

三、常量

1、常量的定义

常量是指在程序执行中无法修改的值。如PI(3.1415926);
在脚本执行期间该值不能改变;
常量对大小写敏感,通常常量名总是大写;
常量是全局的,可以在脚本的任何地方引用;
常量使用define()函数;

    // 常量
    define("PI", 3.14);
    echo PI;
2、内置常量
  • PHP_OS php所在操作系统的名称
  • PHP_VERSION 当前php的版本号
    echo PHP_OS;
    echo "</br>";
    echo PHP_VERSION;
3、魔术常量
  • ______LINE__ 文件中的当前行号;

  • ______FILE__ 文件的完整路径和文件名;

  • ______FUNCTION__ 函数名称;

  • ______CLASS__ 类的名称;

  • ______METHOD__ 类的方法名;

注意:此处下划线的前后下划线为2条。

    // 魔术常量
    echo __LINE__."<br>";
    echo __FILE__."<br>";

    function test () {
        echo __FUNCTION__."<br>";
    };
    test();

四、数据类型

1、字符串

字符串有三种定义方式:单引号,双引号,定界符(heredoc);

  • 单引号字符串中出现的变量不会被变量的值替代;
  • 双引号字符串中最重要的一点是其中的变量会被变量值替代;

如果遇到美元符号($),解析器会尽可能多的取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用大括号将变量名括起来。

    $age = 18;
    echo "xiaoming{$age}";  // 输出结果xiaoming18
  • 字符串定界的方法使用定界符语法“<<<”。
    因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
            // 定界符
            $name2 = 'kitty';
            echo <<<AAA
            <table height="20">
                <tr>
                    <td>
                        {$name2}<br/>
                        <script>
                            var p='hello world';
                            document.writeln(p);
                        </script>
                    </td>
                </tr>
            </table>
AAA;
  1. PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
  2. 在PHP定界符中的任何特殊字符都不需要转义;
  3. PHP定界符中的PHP变量会被正常的用其值来替换。
  4. 在语法上尤其需要注意<<<之后的字符是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,并且结尾一定要另起一行,并且改行除了AAA这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话就会报错。
  5. 如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,最好用大括号将其包裹起来。
2、字符串转义
  • \n 换行
  • \r 回车
  • \t 水平制表符(tab键)
  • \\\(反斜杠)
  • $ $(美元符)
  • \” “(双引号)
3、整形(integer)
      $age = 25;
4、浮点型(float, double)
      $num = 5.23;
5、布尔型(boolean)
      $bo = TRUE;
      $bo = FALSE;

五、特殊数据类型

1、资源
$fh = fopen("test.txt","r");

2、null

null无,表示没有值,nul不表示空格,也不表示0;以下情况,则认为是null:

  • 没有设置为任何预定义的变量;
  • 明确的赋值为null;
  • 使用函数unset()清除;

六、自动类型装换

因为php对于类型定义非常的松散,所以有时会根据引用变量的环境将变量自动转换为最合适的类型;

相加运算时会将字符串转换为数字

$num1 = "12";
$num2 = "13assd";
echo $num1 + $num2;  // 25

判断语句中以下类型会被自动转换为布尔值

$abc = false; // false
$abc = 1; // true
$abc = -1; // true
$abc = 0; // false
$abc = null; // false
$abc = "haha"; // true
$abc = ""; // false
 if ($abc) {
       echo "hahhahahhah";
}

六、自动类型装换

1、gettype() 返回变量的类型,共有8个可能的值 string、integer、float、boolean、array、object、null、unknow。
    echo "<hr/>";
    $str = 245.245;
    echo gettype($str);
代码执行效果
2、is_type() 查看变量是属于某个类型,是返回TRUE,否则返回FALSE;

true 显示1,false显示无。

$age1 = array(134, 134, 45, 24);
echo is_string($age1);

如上代码执行效果为无,如果写is_array()则返回1。

3、var_dump() 获取变量的值和类型的详细信息
    $age = 1245;
    var_dump($age);
代码执行效果

以上内容纯属个人理解,由于本人水平有限若有错漏之处,敬请指出斧正,小弟不胜感激。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 1.变量 变量名的命名规范需要“$”进行标识变量名必须以字母或下划线 “_”开头变量名只能由字母、数字、以及“_”...
    苏宇lovecc阅读 1,274评论 1 8
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,086评论 4 97
  • 空闲时间学习学习php的知识,长期记录博客。知识点比较零散,只是对感觉有必要注意的知识点做个记录。 双引号和单引号...
    WhisperKarl阅读 460评论 1 2
  • 对于php总的来说属于后端方面的内容,就是服务器端下面就是他的几个特点 1、运行在服务器端:学会了PHP,就可以指...
    tinaaaabbb阅读 292评论 1 2
  • 1 php的标记 <?php echo "hello php" ...
    零点起飞阅读 141评论 0 0