PHP初学习

PHP

基础知识
hello world";
//字符串拼接
    $message="hello";
    $name="你好";
    $message."".$name;
    echo "
"; //单引号与双引号的区别,单引号无法解析变量 echo "my name is $name"; //my name is 你好 echo 'my name is $name'; //my name is $name echo "
"; //调试函数 var_dump($name); //string(6) "你好" //与echo区别是调试函数无返回值,还能查询变量的数据类型 //常量定义,一般用大写字母 define("MESSAGE","hello 你好",true);//这种方法已被启用 const MESSAGE = "hello 你好"; //布尔类型 $x1 = true; $x2 = TRUE; //类型检测 if(is_bool($x1)){ echo "我是布尔类型"; } //<<<提示符 定义heredoc类型的字符串 #标识符 开始标记 结束标记 $name1 = "张三"; $message1 = <<这是一个标签
这是一个div这是一个a标签
EOT; echo $message1; //数组 $arr = {"1",2}; $arr1 = [1,2,3,4]; var_dump($arr); //array(2){[0]=>string(1)"1"[1]=>int(2)} echo "
"; var_dump($arr1); //array(4){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)} //分配ID键 $arr2 = ["count"=>"hello","foo"=>123]; var_dump($arr2); //arry(2){["count"]=>string(5)"hello"["foo"]=>int(123)} //运算符 ①连接运算符. ②连接赋值运算符.= $a="hello"; $b=$a."world"; //hello world $a.="world"; //hello world //增删改查 //增 //删 unset($arr[1]); unset($arr2["count"]); echo "
"; //改 echo $arr[0] = 2; echo $arr2["count"] = "你好"; echo "
"; //查 echo $arr[0]; echo "
"; echo $arr2["count"]; echo "
"; //对象 new Person(); //Person 类 class Person{ //自定义的类 var $count = 1; function getCount(){ echo $this->count; } } $instance = new Person(); //Person类 实例对象 //访问对象属性 js里是 对象.属性 echo $instance->count; $instance->getCount(); ?>

网址unbug.github.io/codeIf/#加密

转换布尔值
  • 当转换为boolean时,以下值被认为是FALSE:
    • 布尔值FALSE本身
    • 整形值 0(零)
    • 浮点型值 0.0(零)
    • 空字符串,以及字符串 “0”
    • 不包括任何元素的数组
    • 特殊类型 NULL(包括尚未赋值的变量)
    • 从空标记生成的SimpleXML对象
    • 所有其他值都被认为是TRUE(包括任何资源和NAN)
运算符
  • 比较运算符,允许对两个值比较
运算符 名称 描述 实例
x==y 等于 如果x等于y,则返回true 5==8返回false
x===y 绝对等于 如果x等于y,且它们类型相同,则返回true 5==“5”返回false
x!=y 不等于 如果x不等于y,则返回true 5!==8返回true
x<>y 不等于 如果x不等于y,则返回true 5<>8返回true
x!===y 绝对不等于 如果x不等于y,或它们的类型不相同,则返回true 5!=="5"返回true
x>y 大于 如果x大于y,则返回true 5>8返回false
x 小于 如果x小于y,则返回true 5<8返回true
x>=y 大于等于 如果x大于或等于y,则返回true 5>=8返回false
x<=y 小于等于 如果x小于或等于y,则返回true 5<=8返回true
  • 逻辑运算符,将值进行逻辑运算。主要有与、或、非等逻辑。
运算符 名称 例子 结果
and $x and $y 如果 x 和 x和 xy都为true,则返回true
&& $x && $y 如果 x 和 x和 xy都为true,则返回true
or $x or $y 如果 x 和 x和 xy至少有一个为true,则返回true
|| $x || $y 如果 x 和 x和 xy至少有一个为true,则返回true
xor 异或 $x xor $y 如果 x 和 x和 xy有且仅有一个为true,则返回true
!$x 如果$x不为true,则返回true
  • 运算符优先级表
结合方向 运算符 附加信息
clone new clone和new
[ array()
++ – ~ (int) (float) (string) (array) (object) (bool) @ 类型和递增/递减
instanceof 类型
逻辑运算符
* / % 算术运算符
+ - . 算术运算符和字符串运算符
<< >> 位运算符
== != === !== <> 比较运算符
& 位运算符和引用
^ 位运算符
| 位运算符
&& 逻辑运算符
|| 逻辑运算符
?: 三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= => 赋值运算符
and 逻辑运算符
xor 逻辑运算符
or 逻辑运算符
, 多处用到
  • 数组运算符
运算符 名称 例子 结果
+ 联合 $x + $y x 和 x和 xy的联合(但不覆盖重复的键)
== 相等 $x == $y 如果 x 和 x和 xy拥有相同的键:值对,则返回true
=== 全等 $x === $y 如果 x 和 x和 xy拥有相同的键:值对,且顺序相同、类型相同则返回true
!= 不相等 $x != $y 如果 x 不等于 x不等于 x不等于y,则返回true
<> 不相等 $x <> $y 如果 x 不等于 x不等于 x不等于y,则返回true
!=== 不全等 $x !=== $y 如果 x 与 x与 xy不完全相同,则返回true
  • 递增/递减运算符
    • PHP支持C风格的前后递增与递减运算符
    • 递增/递减运算符不影响布尔值。递减NULL值没有效果,但是递增NULL的结果是1,也就是说递增/递减运算过程中,不会把操作数转换成整数后再运算,如果操作数是布尔值,则直接返回结果
例子 名称 效果
++$a 前加 a 的值加一,然后返回 a的值加一,然后返回 a的值加一,然后返回a
$a++ 后加 返回 a ,然后将 a,然后将 a,然后将a的值加一
-$a 前减 a 的值减一,然后返回 a的值减一,然后返回 a的值减一,然后返回a
$a- 后减 返回 a ,然后将 a,然后将 a,然后将a的值减一
  • 新增运算符
//在PHP7+版本多了一个NULL合并运算符??,实例如下(①②两个作用一样)
	#①如果$_GET['user']不存在返回'nobody',则返回$_GET['user']的值
	$username = $_GET['user'] ?? 'nobody';
	#②类似的三元运算符
	$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

//在PHP7+支持组合比较符也称为太空船操作符,符号为<=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较
	#语法格式
	$c = $a <=> $b;
	#解析如下
	如果$a > $b,则$c的值为1;			echo 2 <=> 1; //1
	如果$a == $b,则$c的值为0;			echo 1 <=> 1; //0
	如果$a < $b,则$c的值为-1。			echo 1 <=> 2; //-1
类型比较
  • 虽然PHP是弱类型语言,但是也需要明白变量类型及它们的意义,因为我们经常需要对PHP变量进行比较,包含松散比较和严格比较:
    • 松散比较:使用两个等号==比较,只比较值,不比较类型
    • 严格比较:用三个等号===比较,除了比较值还比较类型
  • 比较多种类型
    • null和string:将null转化成"",进行词汇的比较
    • bool和任意其他的类型:转化为bool FALSE|TRUE
    • string和number:将字符串转化成数字,按照普通数学比较

PHP初学习_第1张图片

PHP初学习_第2张图片

特殊语句
  • foreach语句:用于遍历数组,仅能用于数组和对象。每进行一次循环,当前数组元素的值就会被赋值给$value变量(数组指针会逐一地移动),在进行下一次循环时,将看到数组中的下一个值

    • foreach($array as $value){ 要执行的代码; }
  • continue与break

    • 在PHP中break和continue语句都可以用来跳出循环,包括while、do while、for和foreach循环。不同的是continue命令会终止循环体的单次循环,代码继续往下执行下一次循环,而break会终止整个循环体的循环。

    • continue

      for($i=0;$i<10;$i++){
      	if($i=3){
      		continue;		//打印结果:012456789
      	}
      	echo $i;
      }
      
    • break

      for($i=0;$i<10;$i++){
      	if($i=3){
      		break;		//打印结果:012
      	}
      	echo $i;
      }
      
超全局变量
  • 超全局变量是在全部作用域中始终可用的内置变量。PHP中的许多预定义变量都是超全局的,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行global v a r i a b l e ; 就可以访问它们。常用的超全局变量有 variable;就可以访问它们。常用的超全局变量有 variable;就可以访问它们。常用的超全局变量有GLOBALS、$ _SERVER、$ _GET、$ _POST、$ _FILES、$ _COOKIE、$ _SESSION、$ _REQUEST、$ _ENV。//该部分内容详情看https://blog.csdn.net/zhichaosong/article/details/80507516

    • $GLOBALS:

      • $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

      • PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

      • 主要用于在局部范围不可以使用全局变量时,但又需要使用该全局变量,就使用$GLOBALS。

         
            $x = 75; 
            $y = 25;
        
            function addition() { 
              $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
            }
        
            addition(); 
            echo $z; 
        ?>
        
    • $ _REQUEST:

      • PHP $_REQUEST 用于收集 HTML 表单提交的数据。可以接受post和get两种方式的值

        //以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至
        标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据: Name:
    • $ _POST:

      • PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”

        //以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至
        标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据: Name:
    • $ _GET:

      • PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。

        $_GET 也可以收集URL中发送的数据

        //假设有一个包含参数的超链接HTML页面:
        
        
        
        Test $GET
        
        
        
        //当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。
        以下实例显示了 "test_get.php" 文件的代码:
        
        
         
        
         
        
        
        
    • $ _SERVER:

      • $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目.

        //以下实例中展示了如何使用$_SERVER中的元素:
        ";
        echo $_SERVER['SERVER_NAME'];
        echo "
        "; echo $_SERVER['HTTP_HOST']; echo "
        "; echo $_SERVER['HTTP_REFERER']; echo "
        "; echo $_SERVER['HTTP_USER_AGENT']; echo "
        "; echo $_SERVER['SCRIPT_NAME']; ?>
    • $ _COOKIE:

      • 用于会话控制,cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

        //①创建Cookie
        	//语法
        	setcookie(name, value, expire, path, domain);
        
        	//示例
        
        
        
        
        
        
        
        
        //②取回Cookie值
        //示例a:取回了名为 "user" 的 cookie 的值,并把它显示在了页面上
        
        
        //示例b:使用 isset() 函数来确认是否已设置了 cookie
        
        
        
        ";
        else
          echo "Welcome guest!
        "; ?>
    • $ _SESSION:

      • 用于会话控制,PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

        • 当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

        • 通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

        • Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

          //①开始 PHP Session :
          	/*在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
          	session_start() 函数必须位于 标签之前*/
          
          
          
          
          
          
          
          
          //②存储 和使用Session 变量:
          
          
          
          
          
          
          
          
          
          
          //③终结 Session
          /*如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。*/
          //通过 unset() 函数用于释放指定的 session 变量:
          
          
          /*通过 session_destroy() 函数彻底终结 session,将重置 session,您将失去所有已存储的 session 数据。*/
          
          
    • $ _ENV:

      • 服务器端环境变量。PHP中的$_ENV是一个包含服务器端环境变量的数组,不同系统不完全一样。
        部分变量示例:
        $_ENV[ ‘HOSTNAME’ ] 服务器的主机名
        $_ENV[ ‘SHELL’ ] 系统 shell

        //$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它:
        //输出内容格式清晰,ThinkPHP可以直接用dump()
        var_dump($_ENV);
        
        //输出到屏幕
        print_r($_ENV);
        
        //输出key-value键值对
        foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'
        ';}
    • $ _FILES:

      • 上传文件使用,$_FILES 主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量 F I L E S 来取得。 _FILES 来取得。 FILES来取得。_FILES 超级全局变量包含通过POST方法向服务器上传的数据的有关信息。这个超级全局变量与其他的变量有所不同,它是一个二维数组,包含5个元素。
      //前段上传文件示例代码
      /**创建一个文件上传表单
      允许用户从表单上传文件是非常有用的。
      请看下面这个供上传文件的 HTML 表单:**/
      
      
          
      //后端处理文件示例代码: 0) { echo "Return Code: " . $_FILES["file"]["error"] . "
      "; } else { echo "Upload: " . $_FILES["file"]["name"] . "
      "; echo "Type: " . $_FILES["file"]["type"] . "
      "; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
      "; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
      "; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>

你可能感兴趣的:(php,vscode,phpstorm,visual,studio,code,css,html5,前端)