开发微信平台的时候,选了使用脚本语言php,正好作为自己的一个学习方向。正如师兄所推荐的,需要学好一门高级语言(JAVA...),一门脚本语言(php...),一门接近底层的语言(C...)。
php基本的语法与JavaScript类似,变量的定义的时候不需要规定类型,以“$”符号开头,可以存储 整形和 string类型。PHP4以后引入了引用的概念,类似于C/C++的 “&“ --- 所以可以这样写 $a= "Ray"; $b = &$a; php对单引号处理为纯文本,双引号包含的内容会查询处理,如echo '$a' 会被直接输出 $a, 而echo "$a"; 会输出Ray。
需要提一下的是php中的预定义变量,这些变量依赖于服务器版本和配置,例如 $_GET['id']从 URL http://www.example.com/test.php?id=1 中获取 id 值。目前对于php预定义变量使用少,相关知识之后再做补充。
====================变量=========================
重点学习一下php中变量的使用范围。像其他语言一样,局部变量具有相应的作用域,以例子说明:例子取自:http://www.cnblogs.com/confach/articles/470492.html
";
}
test(1);
test(2);
?>
输出为:
1=1
2=1
解决办法1: 使用global 变量, 注意global 关键字后面只可接变量名,不可进行赋值操作。
";
}
test(1);
test(2);
?>
输出为:
1=1
2=2
解决办法2:使用$GLOBALS超全局变量
";
}
test(1);
test(2);
?>
输出为:
1=1
2=2
解决办法3:使用static 静态变量 ,不过需要在函数内申明。
======================数组==========================
PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。需要指出的是keys既可以默认,则为0,1,2,3... 也可以是自己规定的string类型。并且映射可以包含多层。但是key存在默认强制转换的机制,需要注意。
具体规则如下:
1:包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
2:浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
3:布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
4:Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。
5:数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。
举例:
"a",
"1" => "b",
1.5 => "c",
true => "d",
2 => "e",
"02" => "f",
);
var_dump($array);
?>
输出: array(3) { [1]=> string(1) "d" [2]=> string(1) "e" ["02"]=> string(1) "f" } "c",
"d",
8 => "e",
);
var_dump($array);
?>
输出:array(5) { [0]=> string(1) "a" [1]=> string(1) "b" [6]=> string(1) "c" [7]=> string(1) "d" [8]=> string(1) "e" } "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
);
var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>
输出:string(3) "bar" int(24) string(3) "foo" 1, 12 => 2);
$arr[] = 56; // This is the same as $arr[13] = 56;
$arr["x"] = 42; // This adds a new element to
// the array with key "x"
$arr[14] = 45; // This adds a new element to
var_dump($arr);
?>
输出:array(4) { [12]=> int(2) [13]=> int(56) ["x"]=> int(42) [14]=> int(45) } 1, "y" => 2);
$arr[] = 56; // This is the same as $arr[13] = 56;
// at this point of the script
$arr["x"] = 42; // This adds a new element to
// the array with key "x"
$arr[] = 45; // This adds a new element to
var_dump($arr);
?>
输出:array(5) { [5]=> int(1) ["y"]=> int(2) [6]=> int(56) ["x"]=> int(42) [7]=> int(45) }