php初始化变量
㈠ php中为什么要初始化变量请高手解答
php是弱类型语言,可以直接用,不过初始化是个好习惯。这样以后再读代码的时候,可以很清楚该变量是干什么用的。
我一般只有在定义数组的时候初始化。有的函数比较大,可能好多单词比如data,之前用过了,但是如果忘了,继续用$data['title']=“ddd”;往$data放数据,就会导致之前data里的数据被覆盖,也可能之前不需要的数局进入了后面要用的data里。这时初始化一下,data实际就清空了。这样一般不会有什么问题
㈡ php 变量怎么初始化
直接
$a = '';
$b = 0;
$c = array();
就可以了,php在这方面比较省事,静态变量用define定义
如define('AAA',0);
类对象变量用 var
如 var $aaa = 0;
㈢ php变量初始化。用null。0。'' 那个好
习惯上都是用0的,因为0代表你初始化的这个变量时整形,而空则说明暂时不确定你初始化的这个变量的类型是什么,哪个好你应该明白了吧
㈣ php为什么变量要初始化 向高手讨教
是这样的,比如我们程序要使用$tmp来存储一个循环里面取到的内容,语句如下:
while(...){
if (...) $tmp=...;
}
if ($tmp==...) {...}
上面的语句,是在循环里面判断某个条件,条件满足就赋值,循环结束后判断变量的值来执行程序,看起来没问题,但是实际上有问题。
因为在循环前没有对$tmp='';这样初始化,那么循环中如果一直都没有满足条件,其实$tmp的值可能是不确定的。特别是,当字段全局变量开关打开的时候,$tmp的值可能是调用这个PHP文件时的参数值,例如xxx.php?tmp=xxx这样的调用就可以改变程序里面变量的值,非常危险。
㈤ 关于php当中static关键字,资料上说只能初始化一次。但是数组变量在定义时赋值会被下一次初始化覆盖!
你定义了static 就是静态变量
但是静态变量的初始化只进行一次,而且是定义静态变量的时候初始化
static $a = array(1,2,3);
print_r($a);
static $a = array();
这样实际上是定义了两次静态变量,并初始化,实际做会执行其中一个
就是后面这个
上面的代码实际上会被编译器编程这样
<?php
function f1(){
static $a = array();
print_r($a);
print_r($a);
}
function f2(){
static $a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
print_r($a);
print_r($a);
}
㈥ PHP定义类内数组,在初始化访问数组是提示为定义变量
$this->table[$i][0]="null";
㈦ PHP中为什么要初始化变量
由于不存在声明语句,所以变量初始化过程应该直接赋值,例如: $str_demo=""; 未初始化变量的默认值
未初始化的变量被使用时,具有其类型的默认值:FALSE,零,空字符串或者空数组。 举例如下: <?php echo ($unset_bool? "true": "false"); // false $unset_int += 25; // 0 + 25 => 25 echo $unset_string . "abc"; // "" . "abc" => "abc" $unset_array[3] = "def"; // array() + array(3 => "def") => array(3 => "def") ?> 未初始化变量可能带来的问题
依赖未初始化变量的默认值在某些情况下会有问题,例如: 直接使用未定义变量可能会报错,比如这样的程序 <?php if($command!= "kkk") echo "not kkk"?>
可能会出现错误提示 <b>Notice:</b> Undefined variable: command in <b>X:\wamp\www\xxx.php</b> on line 1
以上程序的错误信息属于E_NOTICE级别,是否显示出来与php.ini中的错误级别设置有关。
㈧ php为什么变量要初始化 向高手讨教
是这样的,比如我们程序要使用$tmp来存储一个循环里面取到的内容,语句如下:
while(...){
if
(...)
$tmp=...;
}
if
($tmp==...)
{...}
上面的语句,是在循环里面判断某个条件,条件满足就赋值,循环结束后判断变量的值来执行程序,看起来没问题,但是实际上有问题。
因为在循环前没有对$tmp='';这样初始化,那么循环中如果一直都没有满足条件,其实$tmp的值可能是不确定的。特别是,当字段全局变量开关打开的时候,$tmp的值可能是调用这个PHP文件时的参数值,例如xxx.php?tmp=xxx这样的调用就可以改变程序里面变量的值,非常危险。
㈨ ThinkPHP遇到的类私有变量赋值问题
Home\Common\Map.class.php文件
<?php
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '张三',
'1' => '李四',
'2' => '王五',
'3' => '赵六'
);
return $map;
}
}
Home\Controller\IndexController.class.php文件
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 写法1
// 测试 静态函数 类私有变量赋值
public function getName() {
$name = map::getName(); // 写法2
var_mp($name);
}
}
其中,写法1出错,显示:
写法2显示:
如果想私有变量赋值,可以构造函数赋值,即在__construct()里赋值:
$this->name = map::getName(); // 注意千万别写成$this->$name
类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字 public , protected 或者 private 开头,然后跟一个普通的变量声明来组成。 属性中的变量可以初始化,但是初始化的值必须是常数 ,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
在类的成员方法里面,可以用 -> (对象运算符):$this -> property(其中 property 是该属性名)这种方式来访问 非静态属性 。 静态属性 则是用 :: (双冒号):self::$property 来访问。
当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象 静态 调用时也可能是另一个对象)。
具体请参考:http://php.net/manual/zh/language.oop5.properties.php
㈩ PHP的变量是什么
PHP中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域。对于初学者来说,变量的作用域是它们所驻留的页面。我们为大家收集整理了关于PHP的变量,以方便大家参考。
变量是程序中或以变化的量,用于存储数字、字符串或函数的结果。
一旦设置了某个变量,我们就可以在脚本中重复地使用它。
PHP 中的所有变量都是以 $ 符号开始的。
在 PHP 中设置变量的正确方法是:
$var_name = value;
PHP 的入门者往往会忘记在变量的前面的 $ 符号。如果那样做的话,变量将是无效的。
下面我们创建一个存有字符串的变量,和一个存有数值的变量:
$txt = "Hello World!";
$number = 16;
?>
PHP 是一门松散类型的'语言(Loosely Typed Language)
在 PHP 中,不需要在使用变量之前先声明该变量。
在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型。
根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。
在强类型的编程语言中,您必须在使用前声明变量的类型和名称。
在PHP中,变量会在使用时被自动声明。
变量的命名规则
变量名必须以字母或下划线 "_" 开头。
变量名只能包含字母数字字符以及下划线。
变量名不能包含空格。
如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)。