Blogger Information
Blog 34
fans 0
comment 0
visits 26780
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中变量作用域、类型及检测、分支结构
罗盼的博客
Original
693 people have browsed it

实例

<?php
//设置字符集
header("content-type:text/html;charset=utf-8");
//常量定义,不可改变,不可删除
define('HERE_SITE','www.php.cn');
const CITY = '西安';
echo HERE_SITE;
echo CITY;
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

 什么是变量的作用域?
变量的作用域:变量可以使用的代码的范围

1.局部变量:仅作用于方法(function)中使用,方法外此变量不可被使用或者引用

实例

<?php
function get_user_name()
{
         $id = 1;
        if($id == 1){
            return "luo";
        }else{
            return "zhu";
        }        
}

/*
echo get_user_name();会正确输出luo,说明我们的$id变量在函数内部起作用
echo $id;如果此时输出$id会提示你此变量未被定义:说明我们在函数中定义的变量,外部不可调用
*/
echo get_user_name();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



2.全局变量:方法function外定义的变量,作用于全局作用域
当前文件除过方法内都可生效,其他文件需要引用的话,需要include 或者requiire包含当前文件。

实例

<?php
$user_id =1 ;
function get_user_name_one()
{
         global $user_id ;//声明$id为全局变量
        if($user_id == 1){
            return "luo";
        }else{
            return "zhu";
        }        
}
/*如果此时在方法里声明$id为全局变量在方法里就可以使用
此时echo get_user_name_one();调用方法也是可以正确执行的
输出echo $user_id;也是有结果的
*/
echo get_user_name_one(),'<br>';
echo $id;
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



3.超全局变量:如$_POST,$GLOBLES[],$SESSION,$FILE在根目录下的所有文件均可引用

实例

<?php
$GLOBALS['name'] = '警长';
function print_name()
{
 return "我是".$GLOBALS['name'] ; 
}

echo print_name();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



4.静态变量:static只在当前函数中使用,保持变量不被销毁

实例

<?php
function num()
{
   static $i= 1;
   return "第".$i."次输出".$i++;
    
}

echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


实例

/*变量类型:*/
/*变量类型:
1.标量:单值变量,数值,布尔,基本数据类型
*/
<?php

$city = "西安";
$float = 400.00;
$int = 10000;
$bool = false;
echo '我调查'.$city.'总人口约'.$float.'万,平均工资'.$int.'元--调查结果:',$bool?'正确':'错误';
echo '<hr>';

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

/*变量类型:
2.复合类型:多值变量(数组array和对象object)
*/
$arr = array("0","1","2","3");
for($i=0;$i<count($arr);$i++){
 echo $arr[$i],'<br>';   
}
echo '<hr>';

$arr1 = array(
array('id'=>'1','name'=>'luopan','sex'=>'nan'),
array('id'=>'2','name'=>'zhangsan','sex'=>'nv')
);
foreach($arr1 as $k=>$v){
    
    echo '用户ID :'.$v['id'],'<br>';
    echo '用户姓名:'.$v['name'],'<br>';
    echo '用户性别:'.$v['sex'],'<br>';
}
echo '<hr>';

class frui_use{
    public $type;
    public $price;
    public $usage;
    
   
     public function eat(){
        return $this->type.'吃法是'.$this->usage;
    }
    
     public function price(){
        return $this->type.'价格是'.$this->price."元";
    }
    
    
}

$fruit = new frui_use;
$fruit->type = "苹果";
$fruit->price = 20;
$fruit->usage ="削皮";
echo $fruit->eat( );
echo '<hr>';
echo $fruit->price( );
echo '<hr>';


/*变量类型:
3.特殊类型:null,资源
*/
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "第一行\n";
fwrite($myfile, $txt);
$txt = "第二行\n";
fwrite($myfile, $txt);
fclose($myfile);

/*变量检测:
is_null(); 如果变量定义未被赋值,赋null值,被销毁返回ture
empty(); 如果变量为null,"",0,"0",空数组
isset(); empty结果取反
*/

$var ;
$var1 = null ;
$var2 = "pjj";
$var3 = "ok";
unset($var2);
@var_dump(is_null($var));
@var_dump(is_null($var1));
@var_dump(is_null($var2));
@var_dump(is_null($var3));
echo '<hr>';

$str = null;
$str1 = "";
$str2 = 0;
$str3 = "0";
$str4 = array();
@var_dump(empty($str));
@var_dump(empty($str1));
@var_dump(empty($str2));
@var_dump(empty($str3));
@var_dump(empty($str4));
echo '<hr>';

$number= null;
@var_dump(isset($numbers));
echo '<hr>';


/*
分支结构
*/
/*1.if-else if-else*/
$age=22;
if($age<18){
    echo "你是一个小孩!";
}else if($age>=18 &&$age<60){
     echo "你是一个成年人!";
}else{
    echo "你是一个老年人!";
}

echo '<hr>';
/*2.switch*/
$pilotLamp = 20;
switch($pilotLamp){
    case 0 :
       echo "红灯亮了,停下来!";
       break;
    case 1 :
       echo "绿灯灯亮了,赶紧走!";
       break;
    case 2 :
       echo "黄灯灯亮了,等一下!";
       break;
    default: echo "指示灯坏了!";
}







Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments