2014年1月

PHP中empty()和isset()区别

empty()函数参数是非或非零的值,则empty()返回FALSE

""0"0"NULLFALSEarray()var $var都被认为是空,如果函数为空,则返回TRUE

isset()参数存在,则返回TRUE,否则返回FALSE,如果使用isset()测试一个被设置成NULL的变量或者使用unset()释放了一个变量,则返回FALSE

复习:NULL字节("\0")并不等同于PHP的NULL函数。
注:判断一个变量存在且不为空:!empty($var) - 推荐

PHP变量命名规则与范围

内置结构、关键词以及用户自定义类名和函数名不区分大小写(如echo while class名称,function名称),而变量名严格区分大小写

有效变量名以字母和下划线开头,不能以数字开头,中间不能使用空格,用点分开。(可以使用中文)

系统关键词可以在PHP中作为变量名使用(但最好不要

附:变量范围:如果不是在函数中声明,则一般在一个页面所有开启PHP模式下有效。

- 阅读剩余部分 -

PHP引用赋值

貌似在兔子书上没有看到过,传统的赋值方法传值大致是变量A = 变量B ,而引用赋值相当于“一根绳上的蚂蚱”,A变化同样会引起B变化,同样的B变化会引起A变化。(传值更快速)

$foo = 'Bob'
$bar = &$foo //此时$bar为'Bob'

$bar = "My name is Tom";
echo $foo //此时会输出"My name is Tom"

but:

$bar = &(4 * 1);

function test() {
    return 2
} 

$foo = &test();

都是非法的,变量必须要有名字。

但他们还是两个变量,所以用unset销毁其中一个的时候另一个不会消失。

这里有一道题目

<?php
    $a= "hello"; 
    $b= &$a;
    unset($b);
    $b= "world";
    echo $a;
?>

请问输出结果是:
A.hello B.world C.NULL D.unset
就直接解释了unset()释放变量后另一个变量不会消失,而关联会被取消的问题,所以输出的才是hello

DOCTYPE的重要性与意义

今天给草草布置作业的时候遇到了我的导航条不兼容的问题,而她用的是IE10,让我以为IE10不支持我写的代码,纠结了好久,可是同样这么写,我的社团期末作业(山寨)却是兼容的,这让我很费解。

研究了半天发现IE6以上理论上就应该是兼容的,为什么不行呢?远程控制之后发现解析为IE5的模式了,难怪不行,可是为什么会被误读,原因还是DOCTYPE

DOCTYPE给了浏览器解读的方向,加上<!DOCTYPE HTML>的话,用的就是HTML5的标准,否则的话是XHTML 1.0

换言之,添加DOCTYPEcharset一样是必须养成的习惯。

注:
完整版:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

关于栈的进出

首先我们来看一个模型:
栈的抽象模型

(这个模型我也画了好一会儿……)我们把栈想象成一段不封口的容器,元素想象成木块。

题目如:

设栈S的初始状态为空,元素a,b,c,d,e,f,g依次入栈,以下出栈序列不可能出现的是( )。

A.a,b,c,e,d,f,g B.b,c,a,f,e,g,d C.a,e,d,c,b,f,g

D.d,c,f,e,b,a,g E.g,e,f,d,c,b,a

- 阅读剩余部分 -

PHP简单的输入输出三个数最大值和最小值

好久没有接触PHP了,目前还是在复习语法层的东西,而且还没复习到面向对象,这个还是稍微想了想才写出来的,自己写的,总会有点漏洞,所以我看得那本兔子书上说一般都用框架的。

功能是最简单的,也没有加上什么别的东西。(所以请不要输入恶意信息

重点在于不跳转页面,直接在该页显示结果的思路:

演示

- 阅读剩余部分 -

Switch-Case中break的作用

今天某个小弟弟又来问了一道题(格式什么的早已抛之脑后……我完了规范格式长啥样了):

#include<stdio.h>
main(void){
    int a,i;
    a = 0;
    for(i = 1;i < 5; i++)
    {
        switch (i)
        {
        case 0:
        case 3:
            a+=2;
        case 1:
        case 2:
            a+=3;
        default:
            a+=5;
        }

    }
    printf("%d\n",a);
}

- 阅读剩余部分 -