تعيين قيمة من مجموعة النقابي واحد من فب إلى مجموعة أخرى

StackOverflow https://stackoverflow.com/questions/702255

سؤال

ولدي $params المتغير الذي يحصل على البيانات من قاعدة البيانات:

$params = mssql_fetch_array($result)

وبقدر ما أعرف، هو مجموعة النقابي. أريد $tempParams مجموعة أخرى لعقد قيمة هذه المجموعة. يمكنني إسناد ذلك باستخدام العبارة التالية:

$tempParams = $params

وبالإضافة إلى ذلك، أحتاج بيان واحد لإعلان وتعيين قيمة $ tempParams، أو يمكن لهذه أن تكون مفصولة؟

واحد أكثر من سؤال أود طرحه هو أنه في أعقاب البيان غير الصحيح. بينما $ tempParams يحتوي على قيم؛

$params['column1'] = $tempParams['newColumns']
هل كانت مفيدة؟

المحلول

نعم،

$tempParams = $params; 

هل نسخ كافة القيم من $ بارامس إلى $ tempParams.

$params['foo'] = 'bar';
echo $tempParams['foo']; //nothing
$tempParams = $params;
echo $tempParams['foo']; //'bar'
$params['foo'] = 'hai';
echo $tempParams['foo']; //still: 'bar' 

نصائح أخرى

وبقدر ما أم لا مجموعة الخاصة بك النقابي، وقراءة وثائق حول mysql_fetch_array ()

وبقدر ما يذهب مهمة، كنت في الواقع يمكن وضعها في عبارة واحدة

$tempParams = $params = mysql_fetch_array( $result, MYSQL_ASSOC );

وهذا اختبار بسيط يوضح أنه عند القيام مهمة من هذا القبيل، سواء المتغيرات نسخ منفصلة وليس المراجع.

$a = $b = array( 1, 2, 3 );

$b[1] = 'x';

echo '<pre>';
print_r( $a );
print_r( $b );
echo '</pre>';

ونعم، سوف = المشغل نسخ مجموعة بالضبط.

ويمكنك التحقق من نفسك:

// get the $params from DB
print_r ($params); // will output array contents
$tempParams = $params;
print_r ($tempParams); // must be the same as above

وليس هناك شيء مثل "يعلن" المتغيرات في PHP، ولكن إذا كنت أود أن أقول أن $ tempParams هو مجموعة في مكان ما قبل تعيين، يمكنك أن تفعل ذلك مثل هذا:

$tempParams = array ();

وهذا سيجعل $ tempParams مجموعة مع عدم وجود عناصر في الداخل.

لالمصفوفات، رقمية والنقابي، فإن = مشغل إجراء نسخة من المتغير. وكلا المتغيرات هي مستقلة تماما عن بعضها البعض. ومع ذلك، عند التعامل مع الأشياء، و= المشغل يخلق إشارة إلى كائن، وكلاهما المتغيرات تشير إلى نفس الكائن المحدد.

ونعم تستطيع، ولكن يمكن أن يسبب نوعا من التعرجات إذا كنت تتعامل مع كائنات (اعتمادا على PHP الإصدار الذي تستخدمه).

وماذا هو الذي تريد نسخ مصفوفة؟ لا يمكنك العمل مع نفس المتغير الأصلي ($ بارامس)؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top