PHP学习

它强大到足以成为在网络上最大的博客系统的核心(WordPress)! 它深邃到足以运行最大的社交网络(facebook)! 而它的易用程度足以成为初学者的首选服务器端语言!


###what is PHP?

####PHP 是一种服务器脚本语言


PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。


###基本语法

PHP 脚本以 结尾

<?php
// 此处是 PHP 代码
?>

用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感

所有变量都对大小写敏感


###变量

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

PHP 是一门类型松散的语言

PHP 变量作用域

<?php
$x=5; // 全局作用域

function myTest() {
  $y=10; // 局部作用域
  echo "<p>测试函数内部的变量:</p>";
  echo "变量 x 是:$x";  //不输出
  echo "<br>";
  echo "变量 y 是:$x";  //10
}

myTest();

echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x"; //5
echo "<br>";
echo "变量 y 是:$x"; //不输出
?>

####PHP global 关键词

<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量

<?php
$x=5;
$y=10;

function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest();
echo $y; // 输出 15
?>

####PHP static 关键词

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量

<?php
function myTest() {
   static $x=0;
   echo $x;
   $x++;
}

myTest();//0
echo "<br>";
myTest();//1
echo "<br>";
myTest();//2
echo "<br>";
myTest();//3
echo "<br>";
myTest();//4
?>

x为局部变量


###在 PHP 中,有两种基本的输出方法:echo 和 print。

<?php
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");

echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>

###PHP 数据类型

$x = "Hello world!";
<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
$x=true;
$y=false;
$cars=array("Volvo","BMW","SAAB");
<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>
$x=null;

###PHP 字符串函数

echo strlen("Hello world!");

###PHP 常量

与变量不同,常量贯穿整个脚本是自动全局的。

如需设置常量,请使用 define() 函数 - 它使用三个参数:

<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>

###PHP 字符串运算符


###PHP 数组运算符


###判断

<?php
$t=date("H");

if ($t<"20") {
  echo "Have a good day!";
}
?>
if (条件) {
  条件为 true 时执行的代码;
} elseif (condition) {
  条件为 true 时执行的代码;
} else {
  条件为 false 时执行的代码;
}
<?php
switch ($x)
{
case 1:
  echo "Number 1";
  break;
case 2:
  echo "Number 2";
  break;
case 3:
  echo "Number 3";
  break;
default:
  echo "No number between 1 and 3";
}
?>

</body>
</html>

###循环

<?php
$x=1;

while($x<=5) {
  echo "这个数字是:$x <br>";
  $x++;
}
?>
<?php
$x=1;

do {
  echo "这个数字是:$x <br>";
  $x++;
} while ($x<=5);
?>
<?php
for ($x=0; $x<=10; $x++) {
  echo "数字是:$x <br>";
}
?>

foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。

<?php
$colors = array("red","green","blue","yellow");

foreach ($colors as $value) {
  echo "$value <br>";
}
?>

###PHP 函数

<?php
function writeMsg() {
  echo "Hello world!";
}

writeMsg(); // 调用函数
?>
<?php
function familyName($fname) {
  echo "$fname Zhang.<br>";
}

familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>

PHP 默认参数值

<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

####返回值

<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>

###PHP 数组

三种数组类型

$cars=array("Volvo","BMW","SAAB");
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";

####获得数组的长度 - count() 函数

echo count($cars);

遍历索引数组

<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

####PHP 关联数组

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

遍历关联数组

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}
?>

###数组排序


###PHP 全局变量 - 超全局变量