1.变量
1.PHP 没有创建变量的命令。变量会在首次为其赋值时被创建:变量是存储信息的容器:
PHP 变量规则:
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
$txt="Hello world!"; $x=5; $y=10.5; 如果您为变量赋的值是文本,请用引号包围该值。
PHP 是一门类型松散的语言,我们不必告知 PHP 变量的数据类型。PHP 根据它的值,自动把变量转换为正确的数据类型。
2.PHP 变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。变量的作用域指的是变量能够被引用/使用的那部分脚本
PHP 有三种不同的变量作用域:local(局部)global(全局)static(静态)
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
$x=5;// 全局作用域
function myTest() { $y=10;// 局部作用域echo "}
lobal 关键词用于在函数内访问全局变量。要做到这一点,请在(函数内部)变量前面使用 global 关键词:
$x=5;$y=10;
function myTest() {
global$x,$y;
$y=$x+$y;
}
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。要完成这一点,请在您首次声明变量时使用 static 关键词
function myTest() {static$x=0; echo $x; $x++;}
每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。该变量仍然是函数的局部变量。
// 这是单行注释 # 这也是单行注释 /* 8888*/ 多行
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1 提示:echo 比 print 稍快,因为它不返回任何值。
2.PHP 字符串
字符串可以是引号内的任何文本。您可以使用单引号或双引号:
var_dump() 会返回变量的数据类型和值
数组 $cars=array("Volvo","BMW","SAAB"); 数组在一个变量中存储多个值。var_dump($cars);
NULL 值。特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值,NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。可以通过把值设置为 NULL,将变量清空
strlen() 函数返回字符串的长度,以字符计
str_word_count() 函数对字符串中的单词进行计数:
echo str_word_count("Hello world!"); // 输出 2
PHP strrev() 函数反转字符串
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
检索字符串 "Hello world!" 中的文本 "world":
echo strpos("Hello world!","world");
字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
HP str_replace() 函数用一些字符串替换字符串中的另一些字符。用 "Kitty" 替换文本 "world":
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
foreach ($array as $value) {
code to be executed;
}
<?php
for ($x=0; $x<=10; $x++) {
echo "数字是:$x <br>";
}
?>
定义函数
户定义的函数声明以单词 "function" 开头,函数名能够以字母或下划线开头(而非数字)。函数名对大小写不敏感。
数组能够在单独的变量名中存储一个或多个值。
$cars=array("porsche","BMW","Volvo");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
array() 函数用于创建数组:
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组 索引是自动分配的(索引从 0 开始):
count() 函数用于返回数组的长度(元素数)
关联数组是使用您分配给数组的指定键的数组。
$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");
数组中的元素能够以字母或数字顺序进行升序或降序排序。
sort() - 以升序对数组排序rsort() - 以降序对数组排序asort() - 根据值,以升序对关联数组进行排序ksort() - 根据键,以升序对关联数组进行排序arsort() - 根据值,以降序对关联数组进行排序krsort() - 根据键,以降序对关联数组进行排序
什么是 Cookie?
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
setcookie() 函数用于设置 cookie。
setcookie() 函数必须位于 <html> 标签之前。
setcookie(name, value, expire, path, domain);
创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:
<?php
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>
在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
如何取回 Cookie 的值?
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
取回了名为 "user" 的 cookie 的值,并把它显示在了页面上
isset() 函数来确认是否已设置了 cookie:
如何删除 cookie?
当删除 cookie 时,您应当使过期日期变更为过去的时间点。
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
如果浏览器不支持 cookie 该怎么办?
如果您的应用程序涉及不支持 cookie 的浏览器,您就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据
网友评论