php 学习

重点: php语言下的变量只能以 $ 开头,无论在什么地方调用这个变量,均需要以 $ 开头调用这个变量。

    php语言下的变量只能以 $ 开头,无论在什么地方调用这个变量,均需要以 $ 开头调用这个变量。

      php语言下的变量只能以 $ 开头,无论在什么地方调用这个变量,均需要以 $ 开头调用这个变量。

 php -a 进入命令行交互模式

echo 函数

echo 输出多个字符串:用.连接,中间不能有空格;字符串中可以有 html代码

<?php
       $color = "red";
       echo "My car is ".$color."<br>";
       echo "My car is ".$color."<br>";
       echo "My car is ".$color."<br>";
 ?>

 变量命名规则

  1、只能以$开头,其后紧跟变量的名称

  2、名称只能以字母或下划线开头;

  3、名称只能由字母、数字、下划线构成

  4、大小写敏感

变量作用域

  1、函数内变量只能在函数内调用;

  2、全局变量只能在函数外调用;

  3、可通过 在 函数内部生命全局变量  global $x'; 从而在函数内部访问或者更新全局变量;

  4、可通过 在函数内部通过 $GLOBALS['x'] 来访问或者更新全局变量

  5、static关键字

数据类型

  1、 var_dump($x); 返回变量 $x的数据类型及数值

常量定义

define("GREETING","WELCOME TO W3CSCHOOL.COM.CN");
echo GREETING;
echo "<br>";
重点: php语言下的变量只能以 $ 开头,无论在什么地方调用这个变量,均需要以 $ 开头调用这个变量。

常量定义遵循以下几个规则:1、通过define("name","value");定义

             2、常量定义后不能修改;

             3、常量名称全面没有 $ 符号了

               4、常量自动全局(global)

字符串运算符:

  1、.  字符串拼接符

  2、.= 字符串拼接运算符

比较运算符:

  1、 == 和 !=                                        ==仅判断比较双方的内容是否一致  1 == “1” 返回true ,因此 1 != "1" 返回 false

  2、=== 和 !==                                     ===需要比较双方的类型和内容均一致,才返回 true,否则返回false。  !== 与 === 的结果相反

数组运算符:

  1、 ==     !=  / <>   数组的内容是否一致(不涉及类型是否一致)

  2、 === (数字的内容一致,并且类型、顺序也需一致)     !==

句式:

  1、 if  --  elseif  -- else  注意为  elseif (中间不能有空格)

  2、switch 语句

  3、while语句 和  do {} while() 语句

  4、for循环

  5、foreach循环

$color = array("apple","orange","ice","strawberry","juice");
foreach($color as $fruit)
{
    echo $fruit;
    echo "<br>";
}

函数:

  1、默认参数

<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

   2、函数传值:在函数内部无法有效对函数外的局部变量的值进行修改

数组:

  1、索引数组

    

<?php
    $cars  = array();
    $cars[0]="Volvo";
    $cars[1]="BMW";
    $cars[2]="SAAB";
    //$cars = array("VOlvo","BMW","SAAB");
            
    //一句话输出
    echo "I like ".$cars[0]."  ".$cars[1]."  ".$cars[2]."  <br>";
        //循环遍历输出
    for($i=0;$i<count($cars);$i++)
        echo "$cars[$i]  <br>";
?>

  2、关联数组

<?php
    $age = array("peter"=>"35","ben"=>"37","joe"=>"43");
    echo "peter is ".$age['peter']." 岁<br><br>";

    foreach($age as $name => $age)
        echo $name."  ".$age."<br>";
?>

  3、多维数组

    

        <?php
            $cars = array (
                    array("Volvo",22,18),
                    array("BMW",15,13),
                    array("SAAB",5,2),
                    array("Lang Rover",17,15),
                );
            
            echo $cars[0][2];

            $rowCount = count($cars);
            $columnCount = count($cars[0]);
            //echo "good    ".$rowCount."     ".$columnCount;
            for($i = 0;$i<$rowCount;$i++)
            {
                echo $i;
                for($j=0;$j<$columnCount;$j++)
                {

                    echo $cars[$i][$j]."   ";
                }
                echo "<br><br>";
            }
        ?>        

  4、排序函数

    共有六个内置的排序函数,分别是: sort($age)  rsort($age)  asort($age)  ksort($age) arsort($age) krsort($age)

      

              <?php

            $age = array("peter"=>"35","ben"=>"37","joe"=>"43");
            $age['peter']='26';
            echo "peter is ".$age['peter']." 岁<br><br>";

            arsort($age);

            foreach($age as $name => $age)
                echo $name."  ".$age."<br>";
        ?>

 5、删除元素

  

    $a1=array("a"=>"red","b"=>"green","c"=>"good","d"=>"okone");
    foreach($a1 as $key => $value)
    {
        if($value == "green")
            unset($a1[$key]);
    }    

  6、 新增元素: array_push() 与  $result[] = $element  

    压入一个元素,$result[] = $element 要快很多;

    同时压入多个元素,array_push($array,$elem1,$elem2)要快一些

    参考链接:http://blog.csdn.net/fdipzone/article/details/48766919 

  7、array_keys_exists($key,$array)

<?php
            $a1=array("a"=>"red","b"=>"green","c"=>"good","d"=>"okone");
            foreach($a1 as $key => $value)
            {
                if($value == "green")
                    unset($a1[$key]);
            }
            print_r(array_values($a1));
            echo "<br>";
            print_r(array_keys($a1));
            echo "<br>";
            if(array_key_exists("c",$a1))
                echo "存在";
            else
                echo "不存在";
            echo "<br>";
            //打印数组
            print_r($a1);

        ?>

  8、array_keys($array1)  array_values($array2)

全局变量

  1、$GLOBALS['key']   该全局变量储存了该php文件中的所有全局变量;

  2、$_SERVER['key'] 该全局变量储存了后台脚本的相关信息;                                ( $_SERVER["REQUEST_METHOD"] == "POST" )

  3、$_REQUEST 该全局变量里保存了请求的数据,类似于 Java中的 HttpServletRequest 的实例对象 request(里面也储存了请求数据)

  4、$_GET$_POST 分别收集了 get 和 post方式传到后台的表单数据

  

php后台函数:

  1、trim($name)   去掉收尾的空元素;

  2、stripslashes($name)去掉反斜杠

  3、htmlspecialchars($name)   把特殊符号转换为 html实体

  4、empty($name)  判断 $name 是否为空

  5、preg_match() 函数检索字符串的模式,如果模式存在则返回 true,否则返回 false。

      

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "只允许字母和空格!"; 
}

date函数:

  1、下面的php语句返回 "2017-04-19 04:27:21 pm"格式的时间表示(H 和 h)

echo "今天是 ".date("Y-m-d  h:i:s  a")."<br>";

   

<?php
$now = time();
$five_hours = strtotime("+5 hours");
echo $now."
";
echo $five_hours;
?>

  2、 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);
?>

  3、time()  获取当前时间戳

$now = time();
echo $now."<br>";
echo date("Y-m-d H:i:s a",$now)."   <br><br>";
date("Ym", strtotime($subject_change['billing_cycle_start']));

 

$this.assign("key","value");

  Smarty 下:传值调用,在模板中可通过 ${key}来显示value值

函数:

  1、file_extsts()  

<?php
    echo file_exists("test.txt");
?>

  2、isset[$_GET["update']]

  3、strtotime(date("Y-m-d H:s:i")) - strtotime()

  4、implode() 函数

$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr);

  5、unset($array[‘key’])

<?php
    $arr2 = array(1,3, 5,7,8);
    foreach ($arr2 as $key=>$value)
    {
        if ($value === 3)
            unset($arr2[$key]);
    }
    var_dump($arr2);
?>
原文地址:https://www.cnblogs.com/maxiaoshuai/p/6731797.html