zoukankan      html  css  js  c++  java
  • PHP学习笔记

    一、常量及数据类型的使用及函数

        1.数据类型之间的相互转换

            强制转换: setType(变量, 类型);   //类型:int , interger, float, double, real, bool, boolean, string, array, object.

                        1.  setType将会改变变量的原类型。   查看变量类型: var_dump();

                          2. 使用括号运算符"(类型)",不会改变原变量的类型,如 $a = (int)"12abc" ;

                          3.  或使用 intval(变量或值) floatval(变量或值)  stringval(变量或值)等做强制转换。

                          1会改变原变量的值,2、3不会。注意强转时数据类型的范围问题 

            自动转换: 最常用的方式,变量会根据运行环境自动转换

    //例子:该例子说明变量根据环境自动转换
            $a = 10;
            $b = "100abc"
            $c = true;
            $d = 12.34;
            $sum = $a+$c+$b+$d;  
     //尝试所有组合,看看结果是怎样。

      2. 常用函数:

          与变量和类型有关的常用函数:

               

    isset(); //判断变量是否被定义 null表示空,返回false
    
    empty(); //判断一个变量是否为空,""、null
    
    unset();
    
    setType();
    
    getType(); //得到类型
    
    /*变量类型测试函数*/
    is_bool() ;  is_int();  //类似这个格式的
    
    
    /*打印数组*/
    $a = array("one","two",1,2,3);
    print_r($a);

         3. 常量的声明与使用

                 1.常量是一个简单值的标识符

                 2.常量定义后不能再改变他的值,不能使用unset()取消

                 3.常量可以不用理会变量范围的规则而在任何地方都可以定义和访问。(全局变量在局部函数中只用要加”global $变量名“声明 )

                 4.常量声明使用define("常量名",值);声明时必须赋值 (无法改变其值)

                 5.defined("常量名") 

                 6.常量的值只能用标量类型(int,float,bool,string)

                 7.常量名习惯用大写

             预定义常量和魔术常量

                  1. M_PI  圆周率

                  2. _FILE_ (魔术常量,在不同情况下不同值)   

         

    二、运算符及优先级、流程控制语句

        1.算术运算符:   与C语言类似。

        2.字符串运算符:  '.'   用于字符串与其他变量或常量连接 , 不会把原字符串改变

    $a = "php";
    $b = 789;
    $c = "abc";
    echo $a.123;   //输出php123
    echo $a."456" //输出php456
    echo $a.$b;     //输出php789
    echo $a.$c;      //输出phpabc
    echo $a;       //输出php

        3.赋值运算符: 与C语言类似

           ".="    字符串连接并赋值

    $a = "php";
    echo $a; //输出php
    $a.=123;
    echo $a; //输出php123

       4.位运算符:与C语言类似

       5.逻辑运算符:与C语言类似

       "=="   比较两边表达式的值是否相等

       "!=" 和 "<>"  : 不等号 , 比较两边表达式的值是否相等

       "==="  : 恒等于, 比较两边表达式的值和类型是否都一样

       "!==" : 恒不等于,比较两边表达式的值和类型是否存在不一样

    $a = "5";
    $b = 5;
    echo $a == $b; //输出true
    echo $a != $b; //输出false
    echo $a === $b; //输出false
    echo $a !== $b; //输出true

    6.运算符优先级  

     

      7.流程控制

        与C语言类似。

     二、循环结构、系统函数和自定义函数

       1. 循环结构:与C语言类似

       2. 函数格式定义:

           (1) 返回值 函数名()

            (2)   返回值 函数名(参数1,参数2)

            (3)   函数名(参数1,参数2,返回值)

            (4)   返回值 函数名 (.....)调用符      即可以在函数调用返回值后加上'.'或'[]' 取数组和成员属性等

                   如  String getA()[0]  String getA().getB() 。

                  注意:string date(string format [, int time])   括号内代表可选。

       3. 自定义函数

           格式: 

    function   funcName($arg1, $arg2, $arg3....){
         statement;
         return vals;
    }

          注意:(1)function 开头

                  (2)funcName 只能以下划线'_'或字母开头

                   (3)funcName不能与关键字同名

           函数可以传引用,与C类似,如: function funcName( $arg1, &$arg2);    调用: echo function($a,$b)    则$arg2就是$b的引用

    三、文件和文件夹操作

         filetype 返回是文件或文件夹  (file、dir、link)

         stat() 返回指定文件的基本属性  (较占内存,需清缓存)

         clearstatcache() 清缓存

         is_executable() 判断是否可执行

         is_dir() 判断是否存在或是文件夹

         is_file() 判断是否是文件

         scandir() 遍历文件夹/返回一个数组

         fopen(filename,mode) //打开或创建一个文件

         mode: 打开模式 r, r+, w, w+, a, a+

                   r:只读模式,将文件指针指向文件头

                   r+:读写模式,将文件指针指向文件头

                  w: 写入模式,将文件指针指向文件头,并清除内容,如果文件不存在则尝试创建

                  w+: 读写模式,将文件指针指向文件头,并清除内容,如果文件不存在则尝试创建

                  a: 写入模式,将文件指针指向文件末尾,如果文件不存在则尝试创建

                  a+:读写模式,将文件指针指向文件末尾,如果文件不存在则尝试创建

           fwrite(资源, 内容)  // 写入文件内容

           fgets(资源, 长度) // 获取文件内容

           fclose(资源) // 关闭一个打开的文件资源

           unlink(文件) // 删除一个文件

           资源:是调用文件函数系统返回的数据类型,类似系统的原语。

     1 <?php
     2     function bianli($fname,$dir,$times)
     3     {
     4         if($times == 3)
     5         {
     6             return;
     7         }
     8         if(is_dir($dir.$fname))
     9         {
    10             echo $dir.$fname." is a dir
    ";
    11             $p = scandir($dir.$fname);
    12             foreach($p as $q)
    13             {
    14                // var_dump($q);
    15                 bianli($q,$dir.$fname,$times+1);
    16             }
    17         }
    18         else
    19         {
    20             echo $dir.$fname." is not a dir,return
    ";
    21         }
    22     }
    23     $dir = scandir("d:\"); 
    24     foreach($dir as $a)
    25     {
    26       //  var_dump($a);
    27         bianli($a,"d:\",0);
    28     }
    29 ?>
    递归遍历文件夹示例
  • 相关阅读:
    unity游戏框架学习-资源管理
    unity游戏框架学习-场景管理
    unity游戏框架学习-实现c#的网络框架
    unity游戏框架学习-SDK接入
    VMware搭建内网并通过iptables端口转发联网
    Mysql 锁总结
    Mysql 参数优化
    php 操作RabbitMQ
    在ubuntu16上搭建rabbitMQ环境
    RabbitMQ基本原理
  • 原文地址:https://www.cnblogs.com/elenno/p/php.html
Copyright © 2011-2022 走看看