搜尋
首頁php教程php手册PHP学习笔记(整理完成)

一、现在开始学习PHP

老猴要弄个网站,提供主机空间的以php+mysql的居多,比较价格也相对较低,所以正好可以学习php.
不过,后来,他又说不急,我也就没有正式开始.今天顺便玩玩,还行,不同于java是强类型语言,php是无类型语言,这一点和_javascript是相似的。

参考如下的示例代码(改编自php manual):

$bool = TRUE; // a boolean

$str = "foo"; // a string

$int = 12; // an integer

echo gettype($bool); // prints out "boolean"

echo "\n";

echo gettype($str); // prints out "string"

echo "\n";

$bool=12;

echo gettype($bool); // prints out "integer"

/*

这里,由于重新将数值12赋给了本来是boolean类型的变量bool,这样,变量bool的类型变成了integer,java那样的强类型语言,赋值只发生在同类型之间。

*/

?>

 

二、PHP与众不同的continue

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

#php_continue.php

/*

php中,continue 在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。

这一点和其他语言是一致的,

不过,另有妙处:continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。

*/

$i = 0;

$j = 0;

while ($i++

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_array.php

/*默认的方式下,phparraykey是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的

*从这点看,java中的数组其实是php中数组的一种默认的方式;而phparray则还有javaMap类的特性:keyvalue

×php manual中的说法“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

{

    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的可变变量

/*可变变量就是变量名可以动态的设置和使用的变量。

一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。

因为普通变量的值是可变的,所以可变变量的变量名也是可变的。

*/

//可变变量适合在什么场合使用呢?

$a = "hello";//定义一个普通变量

$$a = "world";//定义一个可变变量

echo "$a\n";//output:hello

echo "${$a}\n";//使用可变变量

//echo "$hello\n";//outputworld

echo "$hello\n";

?>

 

#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 仅有的一个数组运算符是 + 运算符。

它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。

亦即,以左边的数组为主导,若附加其上的(右边的)数组中有与其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引擎不认为是错用。

if(is_null($none))

    print "length=".strlen($none)."\n";//can output:length=0

else

    print "undefined variable\n";//can not come here

?>

//PHPmanual说明:(1is_null --  检测变量是否为 NULL

//2NULL 类型只有一个值,就是大小写敏感的关键字 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

}

?>



陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中