php基础详解之变量,常量,数据类型,类型转换,运算符,分支与循环

PHP的写法和用法

php文件可以写HTML,scc,以及js php代码必须写在phpphp标记中
标记的写法:<?php ?>

<?php
header("Content-type:text/htl;charset=utf-8");
//php的3种打开方式
//打开地址   http://localhost/php-shh180803/php01/first.php  localhost代表www文件夹
//本地查看    http://127.0.0.1/php-shh180803/php01/first.php
//手机查看局域网   http://10.80.7.14/php-shh180803/php01/first.php
//默认输出echo,只能输出字符或数字,相当于直接在body标签展示
echo "hello world";
//浏览器会默认将响应给其他带标签字符串解析成页面标签
echo "<h1>啊啊啊啊,好难啊</h1>";
?>
<style>
	h1{
		background-color: #FF0000;
		background-color:<?php echo "yellow" ?>;
	}
</style>
<h1 style="background-color:<?php echo "blue" ?>;">么么么额嗯嗯嘛</h1>

<script type="text/javascript">
	var h1 = document.getElementsByTagName("h1")[0];
	h1.onclick = function(){
		h1.style.backgroundColor ="green";
		
	}
	var a = <?php echo 10 ?>;
	console.log(a);
	var b = "<?php echo "hello world" ?>";
	console.log(b);
</script>

声明变量

<?php
	/*
	 *  变量:
	 * 声明变量:声明变量使用$,使用时一定要加$
	 * 变量命名规则
	 * 1、变量名有数字、字母、下划线组成
	 * 2、变量不能以数字开头 中间不能有空格
	 * 3、不能使用关键字,保留字
	 * 4、必须使用驼峰命名法
	 */
	$a = "hello world";
	echo $a;
	
	/*
	 * 变量的赋值运算
	 * 对于PHP下的基本数据类型来说默认使用值的赋值,但是也能通过&进行引用赋值
	 */
	 
	 /* 
	  * 值的传递
	  * 
	 */
	$a = 10;
	$b = $a;
	echo $a."&nbsp;",$b;//10,10
	echo "<hr/>";//换行
	$b = 5;
	echo $a."&nbsp;",$b;//10 5
	
	//址的传递(引用赋值)
	$a = 10;
	$b = &$a;
	echo $a;//10
	echo "&nbsp";
	echo $b;//10
	$b = 5;
	echo $a;//5
	echo "&nbsp;";
	echo $b;//5
	
	//变量的变量:可以直接将一个变量的值作为下一个变量的名
	$a = "hello";
	$hello = "world";
	echo $$a;//world
	
	$a = "hi";
	$$a = "world";
	echo $hi;//world
?>
<script type="text/javascript">
	var $abc;
	//完成一个对象拷贝
	var obj = {
		a:1,
		b:2,
		c:3
	}
	//对于Object以及Array这些引用类型在进行赋值时,先后获共用堆里面的同一个位置,一旦一个发生改变另一个也会发生改变,这种赋值就称为引用赋值
	var str = JSON.stringify(obj);//将对象或JSON转成字符串
	console.log(str);
	var obj2 = JSON.parse(str);//将对象类型的字符串转成对象或JSON
	console.log(obj2);
	obj2.a = 100;
	console.log(obj,obj2);
	//php 没有变量声明提升
</script>

超全局变量

<?php
//超全局变量:无论在那个页面都可以使用的变量就成为超全局变量(以被PHP预定义)
//$_SERVER:包含操作系统,服务器,浏览器信息,文件信息
//输出数组 print_r
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
echo $_SERVER["SERVER_NAME"];//输出当前主机名
echo $_SERVER["HTTP_USER_AGENT"];//输出用户代理
echo "<hr/>";
echo $_SERVER["REQUEST_URI"];//输出当前请求文件的地址
//$_GET:获取向当前PHP传输get请求时所携带的参数
//$_POST:获取向当前PHP传输post请求时所携带的参数
	echo "<pre>";
	print_r($_GET);
	echo "</pre>";
	
	echo '<pre>';
		print_r($_POST);
		echo "</pre>";
	
	//$_REQUEST:获取get请求以及post请求方式的参数,但是安全性不高且缓慢,不推荐使用
	echo "<pre>";
		print_r($_REQUEST);
		echo "</pre>";
		
	//$_COOKIE:可以进行cookie的进行设置以及获取
	$_COOKIE["username"] = "sita";
	echo "<pre>";
	print_r($_COOKIE);
	echo "</pre>";
	
	//$_SESSION:可以获取或设置存储在服务器端的会话储存
	session_start();//开启session
	$_SESSION["username"] = "xxx";
	$_SESSION["pwd"] = 123444;
	echo "<pre>";
	print_r($_SESSION);
	echo "</pre>";
	
	
	$a = 10;
	$b = "hello world";
	//$GLOBALS:获取本脚本中的全局变量
	echo "<pre>";
		print_r($GLOBALS);
		echo "</pre>";
	echo 0; //0	
	$c = "hi";
	echo $GLOBALS['a'] == $a;//1
	echo $GLOBALS['a'] != $a;//啥都没有
	
	//$_FILES:获取所上传的文件
//
1.<pre></pre>是html标签,意思是按原样输出不做更改。
2.php代码中用pre主要是做错误代码输出时候,或者打印数组输出起到保持格式的统一性。


?>

常量

<?php
//常量
/*
 * 一经定义就无法改变的量
 * 
 *常量的定义方法:default(常量名,常量值)
 * 默认常量名为大写
 * 常量的生命周期为开始定义到页面结束(整个页面)
 * 
 */
	define("PI",3.141592653);
	echo PI;
//	PI = 3.14;
//	echo PI;    报错




 
	echo "<hr/>";
	echo PI;
	define("PI",3.14);
	
	//魔术常量:php预定义一些常量,由于使用的位置不一样得到的结果就会不一样,就称之为魔术常量
	echo "<hr/>";
	echo __DIR__;//获取当前访问文件的目录名	
	echo "<hr/>";
	echo __FILE__;//获取当前访问文件的系统盘的文件名	
	echo "<hr/>";
	echo __LINE__;//获取当前行的行号
	
	function fn(){
		echo __FUNCTION__;//获取当前函数的函数名
	}
	fn();
	echo "<hr/>";
	class myClss{
		function show(){
			echo __CLASS__;//获取当前的类的名字
			echo "<hr/>";
			echo __METHOD__;//获取当前的方法名
		}
	}
$obj = new myClss();//实例化一个对象
$obj -> show();//使用实例化对象的方法
?>

数据类型

<?php
/*
 * 数据类型
 * 基本数据类型
 * 整型(interge),浮点型(float),字符串(string),布尔(boolean)
 * 
 * 复杂数据类型
 * 对象(object),数组(Array)
 * 特殊数据类型
 * 资源(resource),null
 */

//整型:整数类型的数据
$a = 10;
//gettype:获取某个值的数据类型
echo gettype($a);//interge
echo "<hr/>";
$a = 0xff;//十六进制数
echo $a;//255
echo gettype($a);//interge
$a = 0777;
echo $a;//511
echo gettype($a);//interge
echo "<hr/>";
$a = 0b1010;//二进制
echo $a;//10
echo gettype($a);//interge

//浮点型
echo "<hr/>";
$b = 1.482489;
echo gettype($b);//double
echo "<hr/>";
$b = 3e10;//3*10^10NNZ
echo gettype($b);//double
echo "<hr/>";


//字符串
$str = "hello world";
echo gettype($str);//string
echo "<hr/>";
var_dump($str);//输出任何类型的数据并显示改数据的类型
$str = "hi hi hi";
echo "<hr/>";
echo gettype($str);//string

echo "<hr/>";
$str = "\"\"";
echo $str;//""
echo gettype($str);//string
echo "<hr/>";

//定界符
$str = <<<EOF
hjasdhjq
j	qwkdh
jk	whdjk
EOF;
	
	
echo $str;
echo "<hr/>";
echo gettype($str);//string
	
$bol = true;
gettype($bol);//boolean
$bol = false;
gettype($bol);//boolean	

//数组类型
echo "<hr/>";
$arr = [1,2,3,4];
$arr =["hello","world","today","happy"];
//关联数组:下标为字符串的数组
$arr["魔都"] = "上海";
$arr["首都"] = "北京";
$arr["雾都"] = "伦敦";
echo "</pre>";
var_dump($arr);
echo "</pre>";
echo gettype($arr);//array
echo $arr["首都"];
echo "<hr/>";

//对象:必须通过实例化类才有

class People{
	public $user = "xxxx";
	public $age = 18;
	public $sex = "女";
	function say(){
		echo $this -> age;
	}
}
$person = new People();
echo gettype($person);//object

$person -> say();
echo $person -> user;
echo "<hr/>";
//资源类型
$fh = fopen("test.txt","r");
echo gettype($fh);//resource
//null
$test;
echo gettype($test);//NULL
echo "<hr/>";
$a = null;
echo gettype($a);//NULL
echo "<hr/>";
$arr = [1,2,3,4];
echo $arr[1];//2
unset($arr[1]);//释放一个值
echo "<pre>";
print_r($arr);
echo "</pre>";
echo gettype($a);//NULL
?>

运算符

<?php
/*
 * 运算符
 * 算术运算符:+ - * / %
 * 自增、自减运算符:++ --
 * 关系运算符: > < >= <= == === != <> !==
 * 逻辑运算符:&&(and) ||(or) !
 * 三目运算符  条件? 真:假
 * 赋值运算符:= += -= *= /= %=
 */
//++在前:在赋值时,先把$a加1,在赋值给$b
$a = 1;
++$a;

echo $a;//2
$b = ++$a;
echo $a,$b;//3 3

//++在后:在赋值时,先赋值给$b,在把$b加1
$a = 1;
$a++;
echo $a;//2
$b = $a++;
echo $a,$b;//3,2

//关系运算符
$a = 10;
$b = "10";
$c = 10;
$d = 5;
$f = "5";
//!= (写作<>):无论声明类型,只要两个值不一样,就说不等于
var_dump($a != $b);//false , !=是==取反
var_dump($a != $c);//false , !=是==取反
var_dump($a != $d);//true
var_dump($a != $f);//true

//!==:两个变量的类型或者值有一个不一样,就是不相等

var_dump($a !== $c);//false 
var_dump($a !== $d);//true
var_dump($a !== $b);//true
var_dump($a !== $f);//true

$a = 3;
$b = 4;
$c = 5;
$res = $a > $b and $a < $c or $c < $b;
var_dump($res);//false
var_dump(!$a);//false

$a = "hi,";
$b = "Alice";
echo $a.$b;//字符串拼接运算符.
$a.=$b;
echo $a;

$a = 10;
$b = 5;
echo $a>$b?"是假的":"是假的";//是假的
?>

分支与循环

<?php
//语句:
/*
 * 分支语句:if switch
 * 循环语句:for while do..while forEach
 * 退出循环语句break,continue
 * 
 */
$a = 10;
$b = 20;
//条件判断简单条件使用if
if($a < $b){
	echo "a小于b";
}else{
	echo "a不小于b";
}

//情况比较多的使用switch..case
//break:终止条件,避免条件成立时,继续执行下一条
$num = mt_rand(1, 10);
	echo $num."<hr/>";
	switch ($num) {
		case 1:
			echo "num为1";
			break;
		case 2:
			echo "num为2";
			break;
		case 3:
			echo "num为3";
			break;		
		case 4:
			echo "num为4";
			break;
		default:
			//当以上所有条件都不满足时,取default
			echo "1-4之外的数";
			break;
	}
//使用for循环输出从1到10
echo "<hr/>";
for($i = 1; $i<=10; $i++){
	echo $i."<hr/>";
}

//while
/*
 * while(条件){
 * 	条件完成时,此处每次都执行
 * 必须要有个条件不满足的操作
 * }
 */
//死循环
//while(true){
//	echo "hi"."<hr/>";
//}
$num = 1;//初始值
while($num <= 10){
	echo $num."<hr/>";
	$num++;	
}

//do-while
/*
 * do{
 * 	做的内容
 * }while(条件){
 * 先执行代码,在判断条件满足不满足
 * 特点:即使条件不满足,也会开启第一次循环	
 * }
 
 */
do{
	echo "I am not 满足条件";
}while(false);
echo "<hr/>";

$num = 1;
do{
	echo $num."<hr/>";
	$num ++;
}while($num <= 10);
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值