Blogger Information
Blog 38
fans 0
comment 0
visits 23433
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
变量的进阶知识与实战--2018-8-23
晓明的博客
Original
541 people have browsed it

一:什么是变量的作用域

      三种作用域: 全局, 在函数之外创建的变量,可在函数外部直接使用
          局部,函数内部创建的变量,仅限在函数内部使用
         静态,函数内部创建,仅在内部使用并且函数执行后他的值不消失

    

实例

<?php
/**
 * 变量作用域
 */
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';

// php只有函数作用域


$siteName = 'php中文网'; // 全局变量
// 当用户定义一个全局变量的时候,这个变量同时也自动成为超全局变量数组$GLOBALS的一个元素
//$GLOBALS['siteName'] = 'php中文网';
// 超全局变量不受作用域限制
//php中函数的声明使用关键字: function 函数名(参数列表,多个参数用逗号分开) { 多条语句}
//创建一个函数,就意味着创建出一个作用域, 执行环境
// 函数中的执行结果用return 返回给调用 者
function hello()
{
//    global $siteName;
    $userName = 'Peter Zhu'; // 局部变量

//    return $userName .'是' .$siteName . '的讲师';
    return $userName .'是' .$GLOBALS['siteName'] . '的讲师';
}

echo '<h3>', hello(), '</h3>';

//echo $siteName;
echo '<hr color="red">';
function myStatic()
{
   static $num = 1;

    return '第'.$num.'次输出'.$num++. '<br>';
}

echo  myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';

运行实例 »

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

实例

<?php
/**
 * 变量作用域
 */
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';

// php只有函数作用域


$siteName = 'php中文网'; // 全局变量
// 当用户定义一个全局变量的时候,这个变量同时也自动成为超全局变量数组$GLOBALS的一个元素
//$GLOBALS['siteName'] = 'php中文网';
// 超全局变量不受作用域限制
//php中函数的声明使用关键字: function 函数名(参数列表,多个参数用逗号分开) { 多条语句}
//创建一个函数,就意味着创建出一个作用域, 执行环境
// 函数中的执行结果用return 返回给调用 者
function hello()
{
//    global $siteName;
    $userName = 'Peter Zhu'; // 局部变量

//    return $userName .'是' .$siteName . '的讲师';
    return $userName .'是' .$GLOBALS['siteName'] . '的讲师';
}

echo '<h3>', hello(), '</h3>';

//echo $siteName;
echo '<hr color="red">';
function myStatic()
{
   static $num = 1;

    return '第'.$num.'次输出'.$num++. '<br>';
}

echo  myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';

运行实例 »

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

   二:变量的类型检测

       is_null(), empty(), isset()来实现

     <?php
/**
 * is_null(), empty(), isset()
 */

// is_null()
$val1;  // 声明但未赋值
$val2 = null; // 声明并初始化
$val3 = 'php';
unset($val3);

@var_dump(is_null($val1) ? true : false);
@var_dump(is_null($val2) ? true : false);
@var_dump(is_null($val3) ? true : false);

// empty()
// 空字符串, 空数组, null, 0 / '0' / false  返回 true

$str1 = '';
$str2 = []; // 空数组
$str3 = 0;
$str4 = '0';
echo '<hr>';
@var_dump(empty($str1) ? true : false);
@var_dump(empty($str2) ? true : false);
@var_dump(empty($str3) ? true : false);
@var_dump(empty($str4) ? true : false);

//isset():检测一个变量是否存在? 是 null 反操作
// 变量已经存在,并且它的值不是null,返回true
echo "<hr>";
$a = null;
var_dump(isset($a));
$b = 'zhu';
var_dump(isset($b));
$c;  // 等价于  $c = null
var_dump(isset($c));



 三:常量的定义和声明

    

实例

<?php
/**
 *常量:只读变量,不可更新,不可删除,没有作用域限制,直接在函数中使用而不声明
 * 通常常量全部采用大写字母,并且不能以$开头,多个单词建议中间用下划线连接
 */
echo '<h3>常量声明,赋值,输出</h3>';
echo '<hr color="green">';

//创建
define('SITE_NAME','Peter Zhu的博客'); // define()函数
const COUNTRY = '中国'; // 关键字const

//访问
echo SITE_NAME, COUNTRY, '<br>';

echo constant('SITE_NAME'),'<br>';

//echo '<pre>',print_r(get_defined_constants(),true),'</pre>';

//检测
echo defined('SITE_NAME1') ? '已定义' : '<span style="color:red">未定义</span>';

运行实例 »

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

 四:数组的简单使用

  

实例

<?php
/**
 * 数组的知识
 */
echo '<h3>数组的创建访问与更新</h3>';
echo '<hr color="green">';

//创建
$city = ['合肥','上海','杭州','南京']; //索引数组
echo $city[0], '<br>';
echo $city[2], '<br>';

// 键值对
$user = ['id'=>10,'name'=>'猪哥','course'=>'php','grade'=>89]; //关联数组
echo $user['name'],'<br>';
echo $user['grade'],'<br>';

//更新
$user['name'] = '朱老师';
echo $user['name'],'<br>';

//删除
//unset($user['grade']);
unset($user);
echo '<pre>',print_r($user,true);

运行实例 »

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

    五.条件判断都和选择结构

实例

<?php
/**
 * 流程控制: 条件判断与多分支
 */

//1.单分支
$grade = 55;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
}

//2.双分支
$grade = 75;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
} else {  // $grade >= 60
    echo '<p style="color:green">恭喜,及格了</p>';
}

//3.多分支
$grade = 85;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
} else if ($grade >= 60 && $grade < 80) {  // $grade >= 60
    echo '<p style="color:green">考得还不错</p>';
} else if ($grade >= 80 && $grade <= 100) {  // $grade >= 60
    echo '<p style="color:green">真TM的是个天才</p>';
}

//4.三元判断:双分一个简写
$age = 16;
echo ($age >= 18) ? '<script>alert("已成年,可以浏览但不可沉迷其中")</script>' : '<p style="color:red">未成年自觉离开</p>';

//5 switch
$program = 'Java';
switch (strtolower($program)) {
    case 'php':
        echo '<p>php是全世界最好的编程语言~~</p>';
        break;
    case 'java':
        echo '<p>通用的编程语言~~</p>';
        break;
    case 'html':
        echo '<p>超文本标记语言~~</p>';
        break;
    default:  // 相当于 else
        echo '<p>你关心的语言未收录~~</p>';
}

运行实例 »

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

 

  六.for循环结构

   

实例

<?php
/**
 * 循环结构: for
 * for (初始条件; 结束条件; 更新条件) { 循环体 }
 */

for ($i=0; $i<10; $i++) {
//    print($i.',');
//    print($i);
//    if ($i < 9) {
//        print(',');
//    }

    ($i<9) ? print($i.',') : print($i);

}

运行实例 »

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



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
Author's latest blog post