常见的小知识
<?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()