全栈-php基础

  • PHP基础
    • 语法
    • 变量
      • 变量区分大小写
      • 使用全局变量
      • 静态变量定义
    • 输出语句
    • 数据类型
      • 字符串
      • PHP整型的三种格式
      • 布尔型
      • var_dump()函数查看数据类型
      • PHP数组
      • PHP对象
      • NULL/null值 可用于清空数据
    • 定义常量
    • 字符串处理
      • 运算符
      • 常用函数
    • PHP运算符
      • 比较运算符
      • 逻辑运算符
      • 数组运算符
      • 三元运算符
      • 组合运算符
      • 运算符优先级
    • 条件执行语句
    • PHP数组
      • 创建数组
      • 获取数组长度
      • 遍历数组
    • 数组排序
    • 超级全局变量
      • $GLOBALS
      • $_SERVER
      • $_REQUEST
      • GET G E T 和 _POST用法同上
    • 循环语句
    • PHP函数
      • 创建函数
      • 带返回值函数
    • PHP魔术变量
    • 命名空间
      • 常见错误
  • PHP面向对象

PHP基础

语法


    //PHP代码
    echo "hello world!"; //以分号结束语句
    /*注释*/
?>

变量

变量区分大小写


$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

变量不需要定义,在第一次赋值时自动创建。

使用全局变量

 

$x = 10;
$y = 20;

function test()
{
    $y = 9;
    global $x;
    echo $x; //x=10
    echo $y; //y=9
}
test();
?> 

全局变量保存在GLOBALS数组中,可以在函数内访问:


$x=5;
$y=10;

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

静态变量定义

static $x=0;

输出语句

echo和print是用来输出的。
echo可以多个字符串连起来,逗号分割。


$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");

echo $txt1;
echo "
"
; echo "在 $txt2 学习 PHP "; echo "
"
; echo "我车的品牌是 {$cars[0]}"; ?>

数据类型

  1. String(字符串),
  2. Integer(整型),
  3. Float(浮点型),
  4. Boolean(布尔型),
  5. Array(数组),
  6. Object(对象),
  7. NULL(空值)

字符串

字符串可以以单引号或双引号括起来

PHP整型的三种格式

整型可以用三种格式来指定:
1. 十进制
2. 十六进制( 以 0x 为前缀)
3. 八进制(前缀为 0)

布尔型

$x = true;

var_dump()函数查看数据类型

PHP var_dump() 函数可以返回变量的数据类型和值:

 

echo var_dump(555);
var_dump("hello");
?>

PHP数组

创建数组

 
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>

PHP对象


class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

NULL/null值 可用于清空数据


$x="Hello world!";
$x=null;
var_dump($x);
?>

定义常量

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '
'
; echo greeting; // 输出 "greeting" ?>

字符串处理

运算符

PHP只有一个字符串运算符.,用于将两个字符串连接起来

 
$txt1="Hello world!"; 
$txt2="What a nice day!"; 
echo $txt1 . " " . $txt2; 
?>

常用函数

strlen() 返回字符串长度
strpos() 查找字符串位置

 
echo strpos("Hello world!","world"); 
?>

对于中文:


echo strlen("中文字符");   // 输出 11
?>
/*输出结果为 12,因为一个中文占 3 个字符数。
可以使用 mb_strlen 设置指定编码输出中文字符个数:*/

echo mb_strlen("中文字符",'utf-8');  // 输出 4
?>

PHP运算符

取反: -x
赋值运算符: =,+=,-=等等
递增递减: x++,x–

比较运算符

x == y 等于,不同类型的比较会强转

x === y 绝对等于,仅当x等于y且类型相同才返回true

逻辑运算符

and or xor && || !

数组运算符

x + y 集合 x 和 y 的集合

x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true

x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true

x != y 不相等 如果 x 不等于 y,则返回 true

x <> y 不相等 如果 x 不等于 y,则返回 true

x !== y 不恒等 如果 x 不等于 y,则返回 true

三元运算符

? :

组合运算符

$c = $a <=> $b;
这句代码的意思是:
 如果 $a > $b, $c 的值为 1
 如果 $a == $b, $c 的值为 0
 如果 $a < $b, $c 的值为-

运算符优先级

运算符的优先级口诀:括(号)、单(操作数)、算(术)、移(位)、关(系);位(运算符)、逻(辑)、条(件)、赋(值)、逗(号)。


// 优先级: &&  >  =  >  and
// 优先级: ||  >  =  >  or

$a = 3;
$b = false;
$c = $a or $b;
var_dump($c);          // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d);          //这里的 $d 就是 boolean 值 true 
?>

条件执行语句

if(条件)
条件若是数值,则只要不是0就代表是true;

条件若是字符串,则空字符串代表false

if..else..

if..elseif..else

switch(){case x:}

与java一样

PHP数组

类型:

数值数组-带有数字ID键的数组

关联数组-带有指定的键的数组

多维数组-包含一个或多个数组的数组

创建数组

数值ID数组


$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

关联数组


$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

获取数组长度

count()

遍历数组

遍历数值数组


$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);

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

遍历关联数组


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

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

foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 value v a l u e 并 且 数 组 内 部 的 指 针 向 前 移 一 步 ( 因 此 下 一 次 循 环 中 将 会 得 到 下 一 个 单 元 ) 。 第 二 种 格 式 做 同 样 的 事 , 只 除 了 当 前 单 元 的 键 名 也 会 在 每 次 循 环 中 被 赋 给 变 量 key。

数组排序

sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列
asort() -
根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

排序直接影响原数组

超级全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。

$GLOBALS

全局变量数组

 
$x = 75; 
$y = 25;

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

addition(); 
echo $z; 
?>

$_SERVER

由web服务器创建,保存server信息

 
echo $_SERVER['PHP_SELF'];
echo "
"
; echo $_SERVER['SERVER_NAME']; echo "
"
; echo $_SERVER['HTTP_HOST']; echo "
"
; echo $_SERVER['HTTP_REFERER']; echo "
"
; echo $_SERVER['HTTP_USER_AGENT']; echo "
"
; echo $_SERVER['SCRIPT_NAME']; ?>

$_REQUEST

收集表单中提交的数据

<html>
<body>

<form method="post" action="">
Name: <input type="text" name="fname">
<input type="submit">
form>

 
$name = $_REQUEST['fname']; 
echo $name; 
?>

body>
html>

GET G E T 和 _POST用法同上

循环语句

while(..)…

do while(..)

for(..;..;..)

以上同JAVA

PHP函数

创建函数


function func()
{
    //要执行的代码
}
?>

带返回值函数

返回类型不需要定义


function add($x, $y)
{
    return $x + $y;
}
echo '1+2=' . add(1,2);
?>

PHP魔术变量

PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

LINEFILE
用于显示当前行和当前文件


echo __LINE__.' ';
echo __FILE__;
?>
__DIR__ 文件缩在目录
__FUNCTION__ 当前函数名
__CLASS__ 当前类名

__TRAIT__ trait名

__METHOD__ 类的方法名

__NAMESPACE__ 当前命名空间

命名空间

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。

常见错误



namespace MyProject; // 命名空间前出现了“” 会致命错误 - 命名空间必须是程序脚本的第一条语句
?>

PHP面向对象

类定义

class Hero
{
    private $name;
    private $sex;

    public function __construct($name, $sex)
    {
        $this->name = $name;
        $this->sex = $sex;
    }

    public function __destruct()
    {
        echo 'Hero:'.$this->name.'销毁。';
    }

    function jump()
    {
        echo $this->name.' jump!'.'
'
; } function run() { echo $this->name.' run!'.'
'
; } }

你可能感兴趣的:(全栈开发)