PHP学习第一天

前言:PHP笔记,属于个人的学习、理解、收集、整理。分享于此,一同共勉,如果有误,敬请告之,吾必改之。

古人云:理论还是要靠实践来检验。基础知识就不多说了,推荐个php教程吧,很适合新手查阅。

一、php变量的数据类型

共八种:整数型(int)、浮点型(float)、布尔型(boolean)、字符串(string)、数组(array)、对象(object)、空类型(null)和资源类型(resource);

Note:其中数组和对象是复合类型;空类型和资源类型是特殊类型。

  • int类型:整数类型为正数、负数和0,正常理解的整数。
  • float类型:浮点型为正常理解的小数、包括正负小数。
  • string类型:加上引号的数据一般为字符型(双引号可以解析变量、单引号则不能)。
  • array类型:数组为一组或多组数据组成的,数组数据可以为任何类型。
  • object类型:对象,可以通过New语句实例化一个类,常见于类与对象的调用。
  • boolean类型:布尔只有两个值,真(true)与假(false)(一般用于流程判断)。
  • null类型:值为空(特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。)。
  • resource类型:为资源类型,没有特定的值,可以是图片,视频,数据等。

重点看实例:

<?php
$bool = true;
$str = "foo";
$int = 12;

echo gettype($bool);//prints out "boolean"
echo "<hr/>";
echo gettype($str);//prints out "string"
echo "<hr/>";
echo gettype($int);//prints out "integer"
echo "<hr/>";
$bool = 12;
echo gettype($bool);//prints out "integer"
?>

注意:越到后边文字描述就越少,建议先去看下教程了解下基础,我主要是为了动手操作,主要目的就是为了操作,实战,所以后边实例会越来越多

二、PHP中与众不同continue

continue与众不同之处在于接受一个可选的数字参数来决定跳过几重循环到循环结尾。

<?php
#php_continue.php
/*
在php中,continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。
这一点和其他语言是一致的,
不过,另有妙处:continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。
*/
$i = 0;
$j = 0;
while ($i++ < 3) {//level 3
echo "Outer /n";
while (1) {//level 2
echo " Middle /n";
while (1) {//level 1
echo " Inner /n";
continue 3;
}
echo "This never gets output. /n";
}
echo "Neither does this. /n";
$j++;
//after runs continue 3,it comes to the end of level 3
}
echo "/$j=$j";//output: $j=0
?>
三、PHP中的数组
<?php
#php_array.php
/*默认的方式下,php的array的key是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的
*从这点看,java中的数组其实是php中数组的一种默认的方式;而php的array则还有java中Map类的特
性:key-value×phpmanual中的说法“PHP 中的数组实际上是一个有序图。图是一种把 values 映射
到 keys 的类型”
*/
$array=array("0","1","2","3","4","5");
print_r($array);
/*
output:
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
)
*/
//用 count() 函数来数出数组中元素的个数
for ($i=0,$size=count($array);$i<$size;$i++)
{
    echo  $array[$i];
    echo "/n";
}
/*
output:
0
1
2
3
4
5
*/
/*use foreach to loop*/
echo "foreach to loop/n";
foreach($array as $temp){
    echo($temp);
    echo "/n";
}
//output as above
/* foreach example 1: value only */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
  print "Current value of /$a: $v./n";//这里使用了转义字符/,使得$a作为一个字串输出
}
/*
output:
Current value of $a: 1.
Current value of $a: 2.
Current value of $a: 3.
Current value of $a: 17.
*/
/* foreach example 2: value (with key printed for illustration) */
$a = array (1, 2, 3, 17);
$i = 0; /* for illustrative purposes only */
foreach ($a as $v) {
   print "/$a[$i] => $v./n";
   $i++;
}
$array2=array("a"=>"avalue","b"=>"bvalue","c"=>"b");
print_r($array2);
echo "****/n";
echo $array2[$array2["c"]];//
//echo $array2[$array2[2]];//企图像java那样使用数组下标方式,是无效的
echo "/n***/n";
/*output:
****
bvalue
***
*/
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>
四、可变变量、字符串运算符和数组运算符:(相异于其他语言的部分)
<?php
#php的可变变量
/*可变变量就是变量名可以动态的设置和使用的变量。
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
因为普通变量的值是可变的,所以可变变量的变量名也是可变的。
*/
//可变变量适合在什么场合使用呢?
$a = "hello";//定义一个普通变量
$$a = "world";//定义一个可变变量
echo "$a/n";//output:hello
echo "${$a}/n";//使用可变变量
//同echo "$hello/n";//output:world
echo "$hello/n";
?>

<?php
#php的字符串运算符
//连接运算符(“.”)
$a="first";
$b=$a."==>second";//now $b is "first==>second"
echo "$b/n";
//连接赋值运算符(“.=”)
//the same to $a=$a."==>second"
$a.="==>second";//now &a is "first==>second"
echo "$a/n";
/*其实可以理解为就只有一种,即连接运算符
这里的点(".")连接运算符和java语言中的字符串连接符("+")是类似的。*/
?>

<?php
#php的数组运算符:+
/* PHP 仅有的一个数组运算符是 + 运算符。
它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。
亦即,以左边的数组为主导,若附加其上的(右边的)数组中有与其key重复的部分将被忽略
*/
$a = array("a" => "apple", "b" => "banana");
$b = array("a" =>"pear", "b" => "strawberry", "c" => "cherry");
$a1=array("c"=>"a1_cherry","d"=>"a1=d");
$c = $a + $b;
var_dump($c);
/*output:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
*/
$d = $a + $b+$a1;
var_dump($d);
/*output:
array(4) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
  ["d"]=>
  string(4) "a1=d"
}
*/
?>
五、NULL
PHPmanual关于NULL的描述:"
NULL
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
  * 被赋值为 NULL。
  * 尚未被赋值。
  * 被 unset()。
NULL 类型只有一个值,就是大小写敏感的关键字 NULL。
"
好混乱啊,在javascript中还有关键字:var用来声明变量,php没有,美元符号($)后面跟个合法的字
符串,一个php的变量就诞生了,如上所说,它尚未被赋值,应该被认为是:NULL。使用strlen()试图将
其当作string,并算出它的长度,这样做,php引擎不认为是错用。
<?php
if(is_null($none))
    print "length=".strlen($none)."/n";//can output:length=0
else
    print "undefined variable/n";//can not come here
?>

<?
//PHPmanual说明:(1)is_null --  检测变量是否为 NULL
//(2)NULL 类型只有一个值,就是大小写敏感的关键字 NULL
$fo=null;
if(is_null($fo))
{//依据上述(2),并非大写的NULL,本不该执行此处的,实际上并非如此,why?
    echo "/$fo=null is NULL/n";//output:$fo=null is NULL
}
$foo=NULL;
if (is_null($f)) {
    echo "/$f=NULL is also NULL";//out put:$f=NULL is also NULL
}
?>

牛人说了,重要的事说三遍:

  • 学习语言要吸收理论知识,掌握其原理,加上多动手实践,融会贯通,必成大气!

  • 学习语言要吸收理论知识,掌握其原理,加上多动手实践,融会贯通,必成大气!

  • 学习语言要吸收理论知识,掌握其原理,加上多动手实践,融会贯通,必成大气!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容