php学习笔记(2)

1、算数运算

<?php
$a = 8;
$b = 2;
$c = 3;
echo $a+$b."<br>\n";
echo $a-$b."<br>\n";
echo $a*$b."<br>\n";
echo $a/$b."<br>\n";
echo $a%$c."<br>\n";
$a++;
echo $a."<br>\n";
$c--;
echo $c;
?>

2、字符串运算

  字符串运算 (string operator) 的运算符号只有一个,就是英文的句号 .。它可以将字符串连接起来,变成合并的新字符串。

<?php
$a = "PHP 4";
$b = "功能强大";
echo $a.": ".$b;
?>

3、赋值运算

<?php
$a = 5;
$a += 2;    // 即 $a = $a + 2;
echo $a."<br>\n";
$b = "哇";
$b .= "哈";   // $b = "哇哈";
$b .= "哈";   // $b = "哇哈哈";
echo "$b<br>\n";
?>

4、逻辑运算

 

 

  

<?
$a = 5;
if ($a != 5) {
  echo "&#036;a 不是 5";
} else {
  echo "&#036;a 是 5";
}
?>

5、其他运算符

  

6、逻辑控制

  1)if..else 循环有三种结构。

if (expr) {
  statement
}
  
/* 本例省略大括号 */ <?php if (date("D") == "Sat") echo "周末了,狂欢去"; ?> /* 本例的执行部分有三行,不可省略大括号 */ <?php if (file_exists("/usr/local/lib/php3.ini")) { echo "以下是 PHP3 的配置文件<p><pre>\n"; readfile("/usr/local/lib/php3.ini"); echo "</pre>\n"; } ?> if (expr) { statement1 } else { statement2 } <?php $f="/usr/local/lib/php3.ini"; if (file_exists($f)) { echo "以下是 PHP3 的配置文件<p><pre>\n"; readfile($f); echo "</pre>\n"; } else echo "很抱歉,找不到 $f"; ?> <?php if ($a > $b) { echo "a 比 b 大"; } elseif ($a == $b) { echo "a 等于 b"; } else { echo "a 比 b 小"; } ?>

 

  2)do..while 是重复叙述的循环,可以分成两种模式。

while (expr) {
  statement
}

<?php
$i = 1;
while ($i <= 10) {
  print $i++;
  echo ". 以后不敢了<br>\n";
}
?>

/* 先判断后执行 */
<?php
$i = 1;
while ($i <= 10):
  print $i++;
  echo ". 以后不敢了<br>\n";
endwhile;
?>

/* 先执行后判断 */
do {
  statement
} while (expr);

  3)for 循环就单纯只有一种,没有变化

for (expr1; expr2; expr3) {
  statement
}

<?php
for ($i=1; $i<=10; $i++) {
  echo "$i. 以后不敢了<br>\n";
}
?>

  4)switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

switch (expr) {
  case expr1:
    statement1;
    break;
  case expr2:
    statement2;
    break;
    :
    :
  default:
    statementN;
    break;
}

<?php
switch (date("D")) {
  case "Mon":
    echo "今天星期一";
    break;
  case "Tue":
    echo "今天星期二";
    break;
  case "Wed":
    echo "今天星期三";
    break;
  case "Thu":
    echo "今天星期四";
    break;
  case "Fri":
    echo "今天星期五";
    break;
  default:
    echo "今天放假";
    break;
}
?>

  5)除了上面的流程控制指令之外,尚有 break 及 continue 两个流程控制指令。

/* break 用来跳出目前执行的循环 */
<?php
$i = 0;
while ($i < 10) {
  if ($arr[$i] == "stop") {
    break;
  }
  $i++;
}
?>

/* continue 立即停止目前执行循环,并回到循环的条件判断处 */
<?php
while (list($key,$value) = each($arr)) {
  if ($key % 2) { // 略过偶数
    continue;
  }
  do_something_odd ($value);
}
?>

7、函数

  函数名不区分大小写,所以需要保证唯一性。

  PHP函数支持传值和传址两种传参方式。传址是为了在执行函数的同时改变函数参数的只,而传值不期望改变。

function myfunc($arg_1, $arg_2, ..., $arg_n) {
  // 执行一些步骤
  return $retval;
}

/* 不使用默认值 */
<?php
function myfunc1($arg_1, $arg_2, $arg_3="我是默认字符串") {
  echo $arg_1+$arg_2;
  echo $arg_3."<p>\n";
}

/* 使用默认值 */
myfunc(3, 4);               // 参数 $arg_3 省略。
myfunc(6, 6, "不用默认值")  // 输入参数 $arg_3。
?>

  传址的方式是传入参数的指针,方法就是在参数的前面加上 & 符号即可。如下例

<?php
function myfunc2(&$argstr) {
  $argstr=ereg_replace("/", "-", $argstr);
}

$today="2000/01/01";
myfunc2($today);
echo $today;   // 2000-01-01;
?>
<?php
$i = 100;
function func($n){
  $n = $n + 100;
  return $n;
}
echo '1)函数传值前变量$i的值:'.$i.'<br>';
echo '2)传值后函数的返回值:'.func($i).'<br>';
echo '3)函数传值后变量$i的值:'.$i.'<br>';
echo '4)函数传址前变量$i的值:'.$i.'<br>';
echo '5)传址后函数的返回值:'.func(&$i).'<br>';
echo '6)函数传址后变量$i的值:'.$i.'<br>';
//echo func($i).'<br>';
?>

8、类

  PHP 只有类别 (class)、方法 (method)、属性、以及单一继承 (extensions) 等。

  下面的范例是手推车类。可以看到,使用 class 表示它是一个类类别。在类别中的 function,例如 add_item 则表示该类的一个方法。方法可以封装类的实际处理情形,让该类自己能依封装好的方法来执行一些步骤。

<?php
// 程序名: cart.inc
class Cart {
  var $items;  // 手推车类
  
  // 本方法加入 $num 件物品到手推车中 (加到 $artnr 变量)
  function add_item ($artnr, $num) {
    $this->items[$artnr] += $num;
  }
  
  // 本方法从手推车减少 $num 件物品 (从 $artnr 变量减掉)
  function remove_item ($artnr, $num) {
    if ($this->items[$artnr] > $num) {
      $this->items[$artnr] -= $num;
      return true;
    } else {
      return false;
    }   
  }
}
?>

  要使用手推车可以用类似下例的方式。可以先将每个类存成 Include 文件,再将它 require 或 include 进来。在定义变量 $cart 时,要使用 new 的保留字,表示 $cart 使用 Cart 类。使用 -> 符号,表示执行类的方法。

<?php
require("cart.inc");
$cart = new Cart;
$cart->add_item("10", 1);
?>
<?php
// 程序名: named_cart.inc
require("cart.inc");
class Named_Cart extends Cart {
  var $owner;
  function set_owner ($name) {
    $this->owner = $name;
  }
}
?>
<?php
require("named_cart.inc");
$ncart = new Named_Cart;           // 建立类变量
$ncart->set_owner ("CyberRidder"); // 配置类的记名属性
echo $ncart->owner;                // 显示类的记名属性
$ncart->add_item ("10", 1);        // 从父类遗传的方法也可使用
?>

 

posted @ 2015-07-30 13:39  Mitu  阅读(225)  评论(0)    收藏  举报