php 的基本语法


常见的小知识


<?php

1  注释

// 单行注释

# 单行注释

/*
多行注释
*/

2 语法对大小写 不敏感

echo "Hello World!";
Echo "Hello World!";
ECHO "Hello World!";


3  变量对大小写 敏感

$color = 'red';

echo "My car is " .$color. "<br>";
echo "My house is " .$Color. "<br>";
echo "My boat is " .$cOlor. "<br>";


4 . 符号 用来进行拼接

$string_x = 'Hello';
$string_y = 'world';

$string_x .= ' '.$string_y;

echo $string_x;

5  一些常见的内置函数

echo is_int(1);
echo is_string (1);
echo is_bool(1);
echo is_object(1);
echo is_resource(1);

//

$test_var;
echo gettype($test_var);
$test_var = 15;
echo gettype($test_var);

//

$test_var = "Hello world";
echo gettype($test_var);


6  内置的一些常量

echo M_PI;


7  条件语句

 - if else 语句
 
$widgets = 24;

if ($widgets ==23){
   echo " 23 widgets";
}

else if ($widgets ==24){
   echo "34 widgets";
}

else{
   echo "35 widgets";
}


 - switch 语句
 
$userAction = 'b';

switch($userAction){
   case 'a':
       echo 'a';
       break;
   case 'b':
       echo 'b';
       break;
   case 'c':
       break;
   case 'd':
       break;
}



8  三元运算符 --  (条件)? 成立的结果 : 不成立的结果 

$widgets = 23;
$plenty = 'we have plenty widgets';
$few = 'we have few widgets';

echo ($widgets >=10) ? $plenty : $few;

 
9   循环语句

 - while 循环
 
$length = 10;
while ($length >= 0){
   echo 'widgets '.$length . ' ';
   $length -= 1;
   
 - do while 循环语句
 
$width = 1;
$length = 1;

do{
   $width++;
   $length++;
   $area = $width * $length;
} while ($area < 1000);


echo "the smallest square over 100 sq ft in area is $width x $length"

// the smallest square over 100 sq ft in area is 32 x 32


 - for 循环语句
 
for ($i = 1;$i <= 10; $i++){
   echo "I,ve counted to: $i";
}

echo 'All done';


?>


字符串


单引号和双引号

<?php
//
//
$my_string = 'hello';

echo '$my_string';  # 单引号 打印的是实际引号中值 -- $my_string
echo "$my_string";  # 双引号会进行解析,取出变量的值 -- hello
echo  '<b>Hi \t there </b>>';  # 单引号不识别 特殊字符  -- Hi \t there
echo  "<b>Hi \t there </b>>"   # 双引号识别 特殊的字符  -- Hi there

//
//?>

在字符串中插入,表示比较复杂的表达式

  • 字符串{$favorateAnimal}s
  • 数组 {$myArray[‘age’]}

<?php

$favorateAnimal = 'cat';
$myArray['age'] = 34;
echo "My favorate animals are {$favorateAnimal}s";
echo " My age is {$myArray['age']}";
echo " My age is " . $myArray['age'];

?>

求字符串的长度 strlen()

<?php
//
$myString = 'hello';
echo strlen($myString)."<br/>";
echo strlen("goodbye")."<br/>"
?>

字符串的索引 $string[index]

<?php
//
//
$string = "Hello";

echo strlen($string)-1;
echo "$string[1]" . "{$string[strlen($string)-1]}";
echo $string[1] . $string[strlen($string)-1];
//
//?>

查找某一个区间的 字符串 substr() (索引可以为-1)

<?php
//
$string = "Hello world";

echo substr($string,0,strlen($string));
echo substr($string,-5);


//?>

查找字符串中是含有某个字符 strstr() stristr()不区分大小写

<?php
//
$string = "Hello world";

echo strstr($string,'sadasd');
echo (strstr($string,"werld")? "Yes" : "No");
//
//
//?>

格式化字符串


数组


创建一个数组


<?php

$mybook = array("title" => "Old brothers",

   "author" => "John",
   "pubYear" => 1939

   );


$mybook["time"] = 2222;  // 添加一个元素


print_r($mybook);  # 打印整个数组

foreach($mybook as $book){
   echo $book;   # 循环打印整个数组
}

//?>

数组切片

<?php


$authors[] = 'A';
$authors[] = 'B';
$authors[] = 'C';
$authors[] = 'D';


$authors_ = array_slice($authors,1,3);  // 数组切片

echo count($authors);  // 查看数组的元素个数

//
//?>

数组的循环 each 和 foreach

<?php
//
$myBook = array(
       "title"=>"a",
       "author"=>'aaaa',
       "pubdate"=>'adadsa',
);

foreach($myBook as $key => $value){
   if ($value=="a") $val = "AAAA";
   echo $key .":" . $value . "<br/>";
}

////?>


函数


内置函数 + 自定义函数

<?php
//
//
function myFunc($param='jimmy'){
   // 默认参数
   echo "Hello world!" . $param;
}

myFunc('Jimmy') // 实际参数

//?>

函数的返回值

当php的引擎遇到 return的时候,它会立即退出函数

<?php
function Bold($text){
   return "<b>$text</b>";
}


$t = Bold("this is bold text !");
echo $t;

//?>

变量的作用范围

<?php
//
//
function nspace(){
   $color = "red";
   echo "My dog is $color";
}

$color = "yellow";

nspace();
echo "my cat is $color";
//
//
//?>

全局变量


1 global 关键字

<?php
//
//
$param = "Hello";

function F(){
   global $param;
   echo $param;
   $param = "hello";
}

function FFF(){
   global $param;
   echo $param;

}

F();
echo $param;

FFF();
//
//?>


2 $GLOBALS 数组 访问全局变量 不需要再使用 global 关键字 


$myGlobal = "hello there";

function hello(){
    echo $GLOBALS["myGlobal"] . "<br/>";

    $GLOBALS["myGlobal"] = "hello";

    echo  $GLOBALS["myGlobal"]. "<br/>";
}

hello();

//echo $myGlobal. "<br/>";

echo  $GLOBALS["myGlobal"]. "<br/>";

foreach($GLOBALS as $k=>$v){
    echo $k,$v;
}

?>

静态变量 static


<?php

function nextNum(){
    static $counter = 0;
    return ++$counter;
}

echo nextNum();
echo nextNum();
echo nextNum();
?>

匿名函数

<?php
//
//
create_function('$a,$b',"return ")
//
//?>

变量的引用 &

补充»


对象和类


创建 类


class Car{
    //nothing happened here
}


# 创建 对象
$beetle = new Car();  # Car Object ( )
$mustang = new Car();

print_r( $beetle );
print_r( $beetle );

//echo $beetle; // 不能转换成字符串,打印出错

声明属性

class MyClass{
    public $property1=1;  // 这是一个 公有属性  在类的内部外部都可以使用
    private $property2=2;  // 这是一个 私有属性  只能在类的内部的方法中使用
    protected $property3=3;  // 这是一个保护属性  区别于私有属性, 该类的子类,派生类都可以使用
}

访问属性

class NewCar{
    public $color;
    public $moto;
}

$bee = new Car();
$bee->color = "red";
$bee->moto = "sikira";
print_r($bee);

静态属性 同静态变量一样 需要加上 static字段,访问的时候需要, ::.

通常用于 表示 某个与特定的类相关的一个 类的全局变量


class StaticClass{
    public static $property1 = 22;
}

StaticClass::$property1--;

echo StaticCLass::$property1  . "<br/>";

类常量 const 关键字 注意常量需要大写也是需要用 :: 进行访问


class NewCar3{
    const SUV = 3;
    const HAT = 2;
    const STATION = 1;

    public $model;
    public $color;
}

$mycar = new NewCar3;

$mycar->model = "Dodge Caliber";
$mycar->color = "blue";
$mycar->type=NewCar3::SUV;

echo "this car is a";
switch ($mycar->type){
    case NewCar3::SUV:
        echo "SUV";
        break;

    case NewCar3::HAT:
        echo "HAT";
        break;

    case NewCar3::STATION:
        echo "STATION";
        break;
}

类的方法 同样 类的方法也是 三种可见性 不声明方法类型的时候 默认是 public

访问的时候 直接 对象->hello()调用

class Foo{
    public function hello(){
        echo "Hello world";
    }
}
$obj = new Foo();
$obj->hello();

类的静态方法

类的继承和封装

//重载,保留父类的方法 //parent::somemethod()

Buy me a 肥仔水!