因此,在js中,您可以在函数之外添加一个变量,push
可用于向其添加值并在其他任何位置访问它。
var names = [];
function my_function_js(){
alert(names);
}
在php中,变量可以以类似的方式运行吗?
例如,假设我有一个带变量的ajax函数。然后我想知道我是否可以在多个场合使用ajax为这个变量添加不同的值。
$names = array();
function my_function(){
$names[] = $_POST['names'];
}
假设第一个ajax调用已通过mike
。然后steve
进行第二次通话,sean
进行最后一次通话。
每个值是否会覆盖以前的值,还是会像js一样保存?
(换句话说,我想知道我是否可以使用ajax多次调用将值添加到php变量中。)
感谢。
修改
有人指出,每次进行新的ajax调用时,都会重置ajax变量(在这种情况下为$names
)。
然后,如何让另一个不受ajax调用影响的变量并简单地将ajax值推送给它?
例如:
$FULL_NAMES = array();
function my_function(){
$names = $_POST['names'];
$FULL_NAMES[] = $names;
}
这样的事情会起作用吗?
答案 0 :(得分:4)
可以选择将值存储在import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=[None, 10])
y = tf.placeholder(tf.float32, shape=[None, 2])
weight = tf.Variable(tf.random_uniform((10, 2), dtype=tf.float32))
loss = tf.nn.sigmoid_cross_entropy_with_logits(tf.matmul(x, weight), y)
optimizer = tf.train.AdamOptimizer(0.1).minimize(loss)
with tf.Session() as sess:
tf.initialize_all_variables().run()
X = np.random.rand(1, 10)
Y = np.array([[0, 1]])
# Evaluate loss before running training step
l1 = sess.run([loss], feed_dict={x: X, y: Y})[0][0][0]
print(l1) # 3.32393
# Running the training step
_, l2 = sess.run([optimizer, loss], feed_dict={x: X, y: Y})
print(l2[0][0]) # 3.32393 -- didn't change?
# Evaluate loss again after training step as sanity check
l3 = sess.run([loss], feed_dict={x: X, y: Y})[0][0][0]
print(l3) # 2.71041
数组中。
您需要添加
$_SESSION
到页面顶部
并使用。
session_start();
答案 1 :(得分:3)
如果您只需要当前用户的数组,并且您不需要将数据持久存储在用户会话中。您可以使用会话变量。
$_SESSION['names'][] = $_POST['names'];
与其他用户一样,不要忘记在代码的开头添加session_start()
。
编辑:我用Adam Copley评论更新了我的答案
答案 2 :(得分:2)
是的,您可以按照您的方式或使用push
向数组中添加项目,但请记住,PHP不是持久性的,所以如果您只是在谈论ajax调用时您在此期间添加的值电话将会存在。
<?php
$names = array();
$names[] = "Mark";
$names[] = "Franklin";
$names[] = "Sam";
var_dump($names);
输出:
array(3) {
[0]=>
string(4) "Mark"
[1]=>
string(8) "Franklin"
[2]=>
string(3) "Sam"
}
如果你想要持久性,你将不得不将值存储在cookie,db,文件系统,内存缓存(如redis)或其他地方。