PHP学习——9 变量

一、PHP中的变量命名规则

1.以$美元符号开头,后面第一位跟着字母和下划线

2.后面跟上任意数量的字母,数字,或者下划线(不能有特殊字符,如&,*,#,...)。

3.区分大小写

命名规则:驼峰命名法,下划线命名法

<?php
// 驼峰命名
$userIdName = 'Tom';   // 首字母小写,后面其他单词首字母大写

// 下划线命名
$user_id_name = 'Tom'; // 字母都是小写,用下划线连接

// 由于数据库字段名忽略大小写,下划线命名法在数据库字段命名中得到了广泛应用
// 表名_字段名
user_name


?>

二、PHP中的变量默认值与初始化

<?php
// 当不确定变量类型时,返回NULL
var_dump($var);            // NULL
print '<hr>';

// 与数值一起操作时,返回0
var_dump($var+10);         // int(10)
print '<hr>';

// 与字符串一起操作时,返回空字符串
var_dump($var+'PHP');      // string(3)"PHP"
print '<hr>';

// 作为真假操作时,返回false
var_dump($var?'真':'假');  // string(3)"假"
print '<hr>';

// 作为数组操作时,返回长度0,空数组
var_dump(count($var));  // int(0)
print '<hr>';

// 初始化
// 一般我们会把对应类型的默认值作为初始化的值,这样便于我们排除变量初始值的错误
?>

三、PHP中的变量赋值

<?
// PHP变量赋值有两种类型:值传递和引用传递
// 1.值传递
$var='php';
$var1 = $var;
echo $var.'----'.$var1; // php----php
echo '<hr>';
$var1='Apache';
echo $var.'----'.$var1; // php----Apache

// 值传递相当于复制,变量之间互相独立
echo '<hr>';


// 2.引用传递
$var2 = &$var; // 
echo $var.'----'.$var2; // php----php
echo '<hr>';
$var2 = 'Apache';
echo $var.'----'.$var2; // Apache----Apache
// 引用传递,相当于给当前变量起了一个别名,实际上引用的同个值。

?>

四、PHP中的可变变量

<?php
// 可变变量:变量的名称可以来自另一个变量的值
$name = 'title';
$$name = '这是一个标题';
echo '$name的值:'.$name;    // $name的值:title
echo '<hr>';
echo '$title的值:'.$title;  // $title的值:这是一个标题
echo '<hr>';
echo '$$name的值:'.$$name;  // $$name的值:这是一个标题

// 注意:用作变量名称的变量值,必须是一个合法有效的标识符
// 字母下划线开头,后面是字母、下划线、数字
?>

五、PHP变量的作用域

表5-1  PHP变量作用域
变量类型创建作用域备注
局部变量当前脚本的函数内部创建仅函数内部 
全局变量当前脚本的函数外部定义

当前脚本

函数内部使用全局变量必须先声明或者使用$GLOBALS

超级全局变量系统预定义,无需创建,跨脚本使用跨脚本,任何地方都可以用 
静态变量函数内部用static创建可供每次调用时共享 
<?php
// 1.全局变量
$hostname = 'www.zjyphp.com';
function getHost(){
  // 2.局部变量
  $hostname = 'zjy php study';  
  return $hostname;	
}
echo $hostname;  // www.zjyphp.com
echo '<hr>';
echo getHost();  // zjy php study

// 3.超级全局变量(预定义变量)之一,$GLOBALS 数组
echo '<pre>';
print_r($GLOBALS);
echo '</pre>';
/*
Array
(
    [_GET] => Array
        (
        )

    [_POST] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [GLOBALS] => Array
 *RECURSION*
    [hostname] => www.zjyphp.com
)
*/
echo '<hr>';
echo $GLOBALS['hostname']; // www.zjyphp.com
echo '<hr>';

// 可以利用$GLOBALS在函数内调用全局的变量
function getGloabalVar(){
  return $GLOBALS['hostname'];
}
echo getGloabalVar();    // www.zjyphp.com
echo '<hr>';

function sum(){
  // 4.静态变量,利用变量共享,实现累加
  static $total = 1;
  return ++$total;
}
echo sum();    // 2
echo '<hr>';   
echo sum();    // 3
echo '<hr>';	
echo sum();    // 4
echo '<hr>';

?>

六、PHP中常用的预定义变量(超级全局变量)

表6-1  预定义变量
预定义变量解释
$GLOBALS

这个变量是数组类型,保存着当前脚本中的所有全局变量,取值用$GLOBALS['全局变量名'],$a==>$GLOBALS['a']

$_SERVER服务器和执行环境信息
$_GETHTTP GET 变量,获取URL地址中带有的变量
$_POSTHTTP POST 变量,用于接收表单等通过POST方式发送的数据
$_FILESHTTP 文件上传变量
$_REQUESTHTTP Request 变量
$_SESSIONSession 变量
$_ENV环境变量
$_COOKIEHTTP Cookies
$php_errormsg前一个错误信息
$HTTP_RAW_POST_DATA原生POST数据
$http_response_headerHTTP 响应头
$argc传递给脚本的参数数目
$argv传递给脚本的参数数组
<?php 

// 2. $_SERVER 服务器和执行环境信息
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
/*
打印出一大串的数组元素,需要关注的有:
当前的域名					[HTTP_HOST] => www.zjyphp.com:8088
服务器的主机名			[SERVER_NAME] => www.zjyphp.com
服务器的端口				[SERVER_PORT] => 8088
项目所在的根目录		[DOCUMENT_ROOT] => C:/Users/zjy/Desktop/PHPStudy/firstdemo
当前脚本的绝对路径	[SCRIPT_FILENAME] => C:/Users/zjy/Desktop/PHPStudy/firstdemo/demo9.php
当前脚本名称				[SCRIPT_NAME] => /demo9.php
获取当前正在执行的脚本文件名 [PHP_SELF] => /demo9.php
*/

// 3. $_GET 获取URL地址中带有的变量
// 假如访问URl:http://www.zjyphp.com:8088/demo9.php?name=zjy&job=H5小@程序工程师
echo htmlspecialchars($_GET["name"]).'的工作是:'.htmlspecialchars($_GET["job"]);
echo '<hr>';
echo $_GET["name"].'的工作是:'.$_GET["job"];
// 结果输出: zjy的工作是:H5小@程序工程师

// 4. $_POST 用于接收表单等通过POST方式发送的数据
echo '<pre>';
print_r($_POST);
/*
当我们在页面的姓名,密码框中输入 zjy,123456,会打印出
Array
(
  [username] =>  zjy
  [passwd] => 123456
)
*/
echo '</pre>';
$register = <<<'FORM'
  <form action="" method="post">
    <label for="name">姓名:</label>
    <input type="text" name="username" id="username">
    <br>
    <label for="passwd">密码:</label>
    <input type="password" name="passwd" id="passwd">
    <br>
    <input type="submit" value="提交">
  </form>
FORM;
echo $register;

?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值