全栈-php基础

PHP基础

语法

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

变量

变量区分大小写

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

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

使用全局变量

<?php 

$x = 10;
$y = 20;

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

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

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

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

静态变量定义

static $x=0;

输出语句

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

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

echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
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() 函数可以返回变量的数据类型和值:

<?php 

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

PHP数组

创建数组

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

PHP对象

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

NULL/null值 可用于清空数据

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

定义常量

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting"
?>

字符串处理

运算符

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

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

常用函数

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

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

对于中文:

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

运算符优先级

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

<?php
// 优先级: &&  >  =  >  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数组

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

关联数组

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

获取数组长度

count()

遍历数组

遍历数值数组

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

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

遍历关联数组

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

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

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

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

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 v a l u e key。

数组排序

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

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

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

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

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

排序直接影响原数组

超级全局变量

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

$GLOBALS

全局变量数组

<?php 
$x = 75; 
$y = 25;

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

addition(); 
echo $z; 
?>

$_SERVER

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

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

$_REQUEST

收集表单中提交的数据

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

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

</body>
</html>

G E T _POST用法同上

循环语句

while(..)…

do while(..)

for(..;..;..)

以上同JAVA

PHP函数

创建函数

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

带返回值函数

返回类型不需要定义

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

PHP魔术变量

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

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

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

__TRAIT__ trait名

__METHOD__ 类的方法名

__NAMESPACE__ 当前命名空间

命名空间

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

常见错误

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

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!'.'</br>';
    }
    function run()
    {
        echo $this->name.' run!'.'<br>';
    }
}

猜你喜欢

转载自blog.csdn.net/mingc0758/article/details/80948166
今日推荐